前端Vue 后端FastApi 跨域 CORS

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

什么是跨域问题?

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

Vue跨域方法

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

复制代码
  server: {

    host:'0.0.0.0',
    open: true,
    proxy: {
      '/api': {
        target: "http://127.0.0.1:8000",
        changeOrigin: true,
        rewrite(path) {
          return path.replace(/^\/api/, '')
        },
      },
      

      },
  },

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

复制代码
import axios from 'axios'
export const addNutInfo = (req:any) => {
    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

复制代码
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware

app = FastAPI()

origins = [
    "http://localhost.tiangolo.com",
    "https://localhost.tiangolo.com",
    "http://localhost",
    "http://localhost:8080",
]

app.add_middleware(
    CORSMiddleware,
    allow_origins=origins,
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)


@app.get("/")
async def main():
    return {"message": "Hello World"}

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

复制代码
export const getNutSum=(line:any) =>{
    return axios.get(`http://127.0.0.1:8000/getsum/${line}`)
}
相关推荐
遇到困难睡大觉哈哈5 小时前
Harmony os 静态卡片(ArkTS + FormLink)详细介绍
前端·microsoft·harmonyos·鸿蒙
用户47949283569155 小时前
Bun 卖身 Anthropic!尤雨溪神吐槽:OpenAI 你需要工具链吗?
前端·openai·bun
p***43485 小时前
前端在移动端中的网络请求优化
前端
g***B7386 小时前
前端在移动端中的Ionic
前端
大猩猩X6 小时前
vxe-gantt 甘特图使用右键菜单
vue.js·vxe-table·vxe-ui·vxe-gantt
拿破轮6 小时前
使用通义灵码解决复杂正则表达式替换字符串的问题.
java·服务器·前端
whltaoin6 小时前
【 Web认证 】Cookie、Session 与 JWT Token:Web 认证机制的原理、实现与对比
前端·web·jwt·cookie·session·认证机制
Aerelin6 小时前
爬虫playwright入门讲解
前端·javascript·html·playwright
5***o5007 小时前
前端在移动端中的NativeBase
前端
灵魂学者7 小时前
Vue3.x —— 父子通信
前端·javascript·vue.js·github