新版chrome浏览器设置允许跨域的实现
前⾔
⽬前前端解决跨域,主要是通过webpack的devServer来配置。但是有时候开发环境中没有配置devServer,后端⼜没有设置跨域。前后端分离项⽬,本地调试代码的时候,经常会遇到跨域问题。本⽂主要是对之前⽂章浏览器跨域访问解决⽅案,做⼀个补充吧,因为这篇⽂章最后对chrome设置⽅式,⽬前设置不起作⽤了,更新⽂章,修正⼀下。
解决--disable-web-security 不起作⽤的⽅案
之前⽂章,提供了windows,mac,linux等设置--disable-web-security的⽅式,但是chrome新版本安全策略升级,这种打开⽅式或者之前的设置⽅式是⽆效的。那么如何解决呢?
⼀、设置跨域,在chrome快捷⽅式右键‘属性’,‘快捷⽅式’,‘⽬标’ 路径最后边按⼀下空格,再添加以下代码:
--args --disable-web-security --user-data-dir=D:\HaoroomsChromeUserData
或者
--disable-web-security --user-data-dir=D:\HaoroomsChromeUserData
D:\HaoroomsChromeUserData 是我⾃⼰随便了个⽂件夹,可以⾃⼰随便配置,不这么写的话,新版本浏览器可能出现设置不⽣效的问题
这个⽅式等于是⽤户在⾃⼰电脑创建了⼀套chrome的私有化浏览器,⾥边的设置配置等均为私有化设置。此时到chrome安装源⽬录,打开,会发现,在私有chrome配置的所有书签,选项等,在这个chrome⾥都没有。
备注:如果要删掉D:\HaoroomsChromeUserData,⼀定要先做书签、账号密码等的备份。⼀经删除,等于是把个⼈电脑⾥的私有chrome卸载了,数据都不会保留
⼆、设置成功以后再打开浏览器,会有提⽰:chrome浏览器是什么浏览器图标
“您使⽤的是不受⽀持的命令⾏标记: --disable-web-security,稳定性和安全性会有所下降”
此时,正常⽤户都可以进⾏跨域访问了,⽐⽅本地的前端项⽬,直连测试或者线上环境的接⼝(前提是⽬标环境在当前浏览器登陆过,已经存在当前账号的cookies,session等信息)
三、有的⽤户还是不能访问,此时在console控制台⾥会看到⼀段背景是黄颜⾊的字
'...Specify SameSite=None and Secure if the cookie should be sent '
此时浏览器还是限制了cookies的跨域访问,所以部分⼈的电脑还是不能使⽤跨域,
解决⽅案:
地址栏输⼊:
chrome://flags
再搜索:
SameSite by default cookies
到‘SameSite by default cookies’以及‘Cookies without SameSite must be secure’,在后边有个下拉框,这俩选项均选
择:‘disabled’,浏览器会提⽰红字:‘警告:您所要使⽤的是实验性功能!’
选择忽略警告,此时浏览器是我们本地创建的D:\HaoroomsChromeUserData,点击右下⾓的Relaunch按钮,浏览器会⾃动重启,并且保留所有当前已开页⾯。
备注:联调时使⽤这个模式,如果访问其它购物等⽹站,建议还是使⽤安装源⽬录的,避免出现不必要的⿇烦
其他系统:
mac和linux⼀样,原来命令⾏不起作⽤了,也是指定⼀个存放数据的⽂件夹来达到跨域效果。
其他解决⽅案
可以利⽤chrome插件的⽅式实现跨越临时解决⽅案。
搜索chrome插件
Allow-Control-Allow-Origin: *
安装好插件之后,看他们的⽂档,设置⼀下要跨域访问的地址。
到此这篇关于新版chrome浏览器设置允许跨域的实现的⽂章就介绍到这了,更多相关chrome允许跨域内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章,希望⼤家以后多多⽀持!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论