一.设置proxy

首先在项目中创建vue.config.js

注意在ts环境下仍为js结尾

项目配置详情如下:

module.exports ={
  devServer: {
    open: false, // 是否自动弹出浏览器页面    
    proxy: {
      '/api': { // '/api'是代理标识,用于告诉node,url前面是/api的就是使用代理的
        target: "http://localhost:3000", //目标地址,一般是指后台服务器地址
        changeOrigin: true, // 是否跨域
        ws: true, // 是否代理 websockets
        secure: false, // 是否https接口
        // pathRewrite: { // pathRewrite 的作用是把实际Request Url中的'/api'用""代替 如果有则不需要此属性
        //   '^/api': "/api"
        // }
      }
    }
  }
}

二.问题出现

结果运行依然报错

三.解决方案

最后还是出现在axios的默认基本路径的配置和代理发生了冲突,代理本身是将请求基本路径代理到目标基本路径

比如:

项目基本路径是http:localhost:8080

axios 基本路径却设置为http:localhost:3000,

代理目标路径为:http:localhost:3000

此时项目启动仍然报错跨域

所以axios的基本路径要么设置为项目启动路径http:localhost:8080要么设置为空

此时问题解决

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐