前段时间在开发我的项目的时候,遇到一个比拟稀奇古怪的跨域问题,不管怎么写就是解决不了,起初通过 Chrome 浏览器的设置,解决了跨域问题,这样就不须要在我的项目里通过设置代理来解决跨域问题,间接通过设置批改 Chrome 浏览器的设置就能够解决我的项目跨域问题。具体的跨域问题如下所示:
Access to XMLHttpRequest at 'https://weixin.xxx.com/ems/login' (redirected from 'http://localhost:8081/xxx/queryBalance') from origin 'http://localhost:8081' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No'Access-Control-Allow-Origin' header is present on the requested resource.
本篇博文就来分享一下上述情况的操作步骤,这里是基于 Mac 环境下来解说的,其余电脑操作系统(如 Windows 操作系统)的设置办法这里不再过多介绍,如有其余电脑操作系统的设置办法请找度娘。
在通过 Chrome 浏览器设置跨域配置之前,首先要在 Mac 电脑的终端外面输出以下命令行。
1、关上 Mac 电脑终端,输出以下命令行:
open -n /Applications/Google\ Chrome.app/ --args --disable-web-security --user-data-dir=/Users/ 你的 Mac 用户名 /MyChromeDevUserData/ 回车,即可。
首次关上 Chrome 浏览器会有黄色背景色的“您应用的是不受反对的命令行标记:–disable-web-security。稳定性和安全性会有所降落。”的提醒,那就阐明浏览器设置跨域胜利,若再次反复执行上述命令行时,不会再有相干提醒了,然而还是能够跨域。通过命令行设置完 Chrome 之后,须要进行其余选项设置,间接关上 Mac 电脑的谷歌浏览器进行操作即可,具体操作步骤如下所示:
2、关上 Chrome 浏览器之后,在浏览器地址栏外面输出 chrome://flags 而后回车键,关上;
3、间接在浏览器搜寻栏外面输出以下内容:
SameSite by default cookies 而后回车,搜寻结果显示以下两项选项,而后间接禁用两项设置,即把状态改为 Disabled,而后点击右下角的 relaunch 重启浏览器即可,如下图所示:
4、个别状况下上述操作即可通过浏览器解决跨域问题,然而非凡状况上述步骤仍然不能设置跨域问题,那就持续在浏览器搜寻框输出以下内容:
Schemeful Same-Site 回车,同理把该选项禁用,状态设置为 Disabled,而后重启浏览器,即可。
通过上述步骤,就完满实现通过 Chrome 浏览器设置解决跨域问题,这种办法也为前端开发过程中遇到的跨域问题提供一种十分无效的解决形式,不便又好用。
以上就是本章全部内容,欢送关注三掌柜的微信公众号“程序猿 by 三掌柜”,三掌柜的新浪微博“三掌柜 666”,欢送关注!