vue项目前端本地调试跨域问题-配置代理

文章讲述了项目中的跨域问题,通过修改axios配置baseURL并利用vue.config.js的devServer设置proxy代理来处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    项目遇到一个问题,本地调试运行后浏览器打开显示跨域了。此前询问别的同事告诉我,项目组一直使用的统一解决方案是使用谷歌浏览器调试,因为谷歌浏览器有个关闭浏览器跨域检测的功能。具体使用 mac 时候是在终端输入open -a 'Google Chrome' --args --disable-web-security --user-data-dir=/xxx这个命令,会自动开启一个不检测跨域的浏览器窗口。

   近期我遇到了需要使用别的浏览器调试的实际情况,基于这种情况,决定彻底解决这个问题,于是想到使用 vue 的 proxy 正向代理

    1、项目原本的情况,使用 ajax 请求时,直接使用了后端接口实际地址作为请求网址,这时就产生了跨域问题。所以,在 axios 里把 baseURL 修改为相对地址,例如实际的后端接口为xxx.xxx.cn/api/... 时,修改为

const service = axios.create({

// axios中请求配置有baseURL选项,表示请求URL公共部分

baseURL: '/api',

// 超时

timeout: 20000

})

    2、后在vue.config.js 中devServer 中配置代理。在浏览器中打开请求时,本地调试的情况请求地址为 localhost:xxxx/api/...,代理会帮助我们将该请求转发给 target 后写入的地址请求,跨域问题就处理成功了

devServer: {

    port: port,

    open: true,

    proxy: {

      '/api': {

        target: process.env.VUE_APP_BASE_API,//此处填入配置文件对应的实际 api 请求地址xxx.xxx.cn/api

        changeOrigin: true,

        pathRewrite: {

          ['^' + '/api']: ''

      }

    }

},

disableHostCheck: true

},

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值