vue-cli项目中——跨域之proxyTable——在开发和生产环境的不同配置

一、问题背景
     利用proxyTable配置之后,编译后生产环境部署失败
二、解决过程
     解决跨域问题又多种方法,网上又很多资料我就不再一 一列举了,直接上proxyTable的配置,我的项目是基于vue-cli脚手架搭建的,找到config/index.js中关于开发环境的配置,增加对proxyTable属性的配置,如下图所示:
在这里插入图片描述

利用axios发送请求的url都要在前加/api前缀,ok没问题,跨域成功解决,查看请求:

在这里插入图片描述

但编译打包放置到服务器端时,却发现报错了,请求的url前都有/api前缀,导致出错。很明显,回过头查看axios的配置,由于api直接写死在url中,对dev环境下,由于又proxyTable的配置,代理最终会自动将/api匹配为目标请求地址“http://xxx.xxx.xxx.xxx/Goods/list”,但生产环境下请求则是“http://xxx.xxx.xxx.xxx/api/Goods/list”,当然出错了。

在这里插入图片描述

解决方法: 修改axios请求的写法,配置axios的baseUrl地址,根据判断为生产环境还是开发环境动态设置,如果时生产环境则baseUrl = “”,开发环境baseUrl=“/api”,这样以适应不同环境,OK修改完成,无论开发或生产环境均可正常运行,不需要额外修改。

在这里插入图片描述
 

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值