axios跨域不成功的一个小问题 Vue CLI3跨域请求,Vue proxy配置

16 篇文章 0 订阅

Vue项目,因为前后端分离,所以在请求后端接口时,时常遇到跨站问题,真心入坑啊

1、如果前后端项目部署时候不在同域名下,前端不用配置,后端做好CORS配置即可,后端配置可参考https://blog.csdn.net/envon123/article/details/83270277

2、如果前后端部署在同一个域名,就不会有跨域问题,但一般是生产环境部署是同一个域名下,但在开发环境时,并不是同域名呀,所以开发时调用接口返回类似“No ‘Access-Control-Allow-Origin’ header is present …”错误

针对开发时要解决的跨域问题,Vue的webpack模板就有相关的解决方案,链接:http://vuejs-templates.github.io/webpack/proxy.html

如果是Vue CLI 3 ,也有相应解决方案,链接:https://cli.vuejs.org/zh/config/#devserver-proxy ,如图:
在这里插入图片描述

明明配置好了,却不行,我改了好久看了好多才发现但请求还是报错,其实忽略了一个问题,接口url要写相对路径,

Vue项目请求接口,一般使用axios这个类库,看一下示例代码:
在这里插入图片描述

标红的地方一定不能写不能写

如上面代码所示,url 要写相对路径,如 ‘/papi/adslot/getAdList’,这样才会请求当前域,假如本地运行是 http://localhost:8080,拼接后就是 http://localhost:8080/papi/adslot/getAdList这样就没跨域了,前面配置proxy才能拦截请求转向真正的后端地址,如果直接写http开头的,就是直接请求对应域名去了,与 localhost:8080 不同域,也没有用上前面的 proxy配置。

感谢 ENVON https://blog.csdn.net/envon123/article/details/83270547

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值