当前位置:   article > 正文

前端Vue 后端FastApi 跨域 CORS

前端Vue 后端FastApi 跨域 CORS

前端跨域方法和后端跨域方法二选一,推荐后端跨域

什么是跨域问题?

前端是localhost:3000,后端是localhost:8000 ,就是跨域了

Vue跨域方法 

在vue.config.ts中,server中,增加proxy部分的代码,意思是 将/api 重写成 后端的地址

  1. server: {
  2. host:'0.0.0.0',
  3. open: true,
  4. proxy: {
  5. '/api': {
  6. target: "http://127.0.0.1:8000",
  7. changeOrigin: true,
  8. rewrite(path) {
  9. return path.replace(/^\/api/, '')
  10. },
  11. },
  12. },
  13. },

然后vue中用axios访问后端的网址就写成

  1. import axios from 'axios'
  2. export const addNutInfo = (req:any) => {
  3. return axios.post('/api/nut/${line}',req)}

相当于 http://127.0.0.1:8000/nut/${line} 

 

后端FastAPI跨域方法

参考https://fastapi.tiangolo.com/zh/tutorial/cors/

origins列表中写的是 前端端口号 比如3000

  1. from fastapi import FastAPI
  2. from fastapi.middleware.cors import CORSMiddleware
  3. app = FastAPI()
  4. origins = [
  5. "http://localhost.tiangolo.com",
  6. "https://localhost.tiangolo.com",
  7. "http://localhost",
  8. "http://localhost:8080",
  9. ]
  10. app.add_middleware(
  11. CORSMiddleware,
  12. allow_origins=origins,
  13. allow_credentials=True,
  14. allow_methods=["*"],
  15. allow_headers=["*"],
  16. )
  17. @app.get("/")
  18. async def main():
  19. return {"message": "Hello World"}

推荐后端跨域的办法,vue前端直接写后端端口就行

  1. export const getNutSum=(line:any) =>{
  2. return axios.get(`http://127.0.0.1:8000/getsum/${line}`)
  3. }

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/548542
推荐阅读
相关标签
  

闽ICP备14008679号