You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

vue-cli如何配置devServer代理将全路径API请求转发到开发服务

解决方案

配置失效原因

devServer.proxy 仅匹配本地请求的路径前缀,你之前的配置直接在axios请求里写了完整的外部接口域名,浏览器会直接发起跨域请求,不会经过本地开发服务转发,因此代理规则完全没有触发,才会出现CORS报错。

正确配置步骤

第一步:保留路径前缀匹配的代理规则

vue.config.js 里的devServer配置不需要写完整域名,还是保留原有的路径前缀匹配逻辑即可:

devServer: {
    proxy: {
        '/api': {
            target: 'http://localhost/my-project-api', // 本地开发环境的后端服务地址
            changeOrigin: true,
            pathRewrite: {
                "^/api": ""
            }
        }
    }
}

第二步:用环境变量区分开发/生产的接口前缀

不要在axios请求里硬写完整域名,通过vue-cli的环境变量自动适配不同环境的接口地址:

  1. 在项目根目录的.env.development文件中添加配置:
VUE_APP_API_BASE_URL = '/api'
  1. 在项目根目录的.env.production文件中添加配置:
VUE_APP_API_BASE_URL = 'https://api.mydomain.com'
  1. 调整axios请求写法,动态拼接接口前缀:
axios({
    method: "get",
    url: `${process.env.VUE_APP_API_BASE_URL}/endpoint/`,
    headers: {
        "Content-Type": "application/json;charset=UTF-8"
    },
    responseType: "json"
})
.then((response) => {
    resolve(response.data);
})
.catch((error) => {
    reject(error);
});

生产环境补充配置

devServer仅在本地开发阶段生效,生产环境部署后需要在https://api.mydomain.com的服务端/网关层配置CORS规则,允许https://project.mydomain.com的跨域请求即可。

内容的提问来源于stack exchange,提问作者dexter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 18:39:02