vue 前端设置允许跨域_vue——前端跨域

本文介绍了前端实现跨域配置的步骤,包括在dev.env.js和prod.env.js中配置域名,以及在index.js中设置target。同时,讨论了浏览器的预检请求(OPTIONS)机制,解释了为何会出现POST被解析为OPTIONS的情况,并提出了解决方案,即通过接口拦截器进行降级处理。此外,还建议与后端协作以确保服务器正确响应预检请求。
摘要由CSDN通过智能技术生成

***针对的是不同域名、不同协议的跨域:

1、找到config文件中开发环境的配置文件——dev.env.js,在里面将要跨域的域名配置进去

779cbb8216903dce114badbbe0b1da4f.png

2、找到config文件中线上环境的配置文件——prod.env.js,在里面将要跨域的域名配置进

cb639dd0d6ddb596c4d4ad073b18dc62.png

3、配置完后,还需要在config的index.js中配置对外的跨域域名,target的值为要跨域的域名(其他文件才能正常找到这个域名)

93c51f51674ede6f26e529789dae7d15.png

注:^api 默认替代了你要跨域的接口的域名

所以,在调用跨域接口的地方,跨域直接以 /api/***的形式去访问

20cf7450a3c1bf65f804e2cf64a48573.png

这个时候,还会出现一个问题,明明写的是post的方法,但是为猫会被浏览器解析为OPTIONS

说到底,是这个跨域的问题没有彻底解决,还有一个顽症待治理

简单的说,就是“非简单请求”在跨域时,浏览器会默认自动帮你发一个OPTIONS请求,到服务器端请求服务器确认该请求的合法性,服务器端必须得有相应的路由处理该请求,并认真返回200响应,然后浏览器才会再次发出正常的、你需要的请求。

这个你可以和你们的后端商量,当然,如果后端大哥说会影响网站安全性这个问题,你也可以自己判断,降低请求复杂程度,将“复杂请求”降至“简单请求”

找到接口的拦截器部分,加上url的判断,不是本服务器上的域名,就降级(我的就一个跨域的域名,所以用的是==判断的)

6dcbc2ac65d658f1061d45a76513fedc.png

这是我处理的方法,百度借鉴,但是一步一步走下来,另有收货,希望对有需要的人有帮助

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值