0

    Mac上解决Chrome浏览器跨域问题

    2023.04.29 | admin | 235次围观

    最近做前端开发总是遇到一个很奇怪的现象,同一个AJAX请求,在Chrome里调试的时候就会提示跨域,但是在手机模拟器或者真机上调试的时候就不会,于是百度了一下,发现是Chrome的安全策略导致的,需要在后台设置一下

    在网上找了半天,发现很多大家通用的方法在我这儿都不行,今天终于找到一个可行,在这里分享给大家

    首先要说的是,我的版本是59的,也就是说是49以后的版本,所以49以后版本的朋友可以用我的这个方法,如果还是之前的老版本,网上其他的通用方法应该就是OK的

    为了便于开发,我们需要从本地环境发请求到dev环境拿数据,但由于浏览器同源策略的限制谷歌浏览器本地跨域,会出现跨站请求报错。庆幸的是,chrome提供了开启允许跨站请求的方法

    Google Chrome 版本号

    首先给大家看看我的跨域报错信息,可能每个人的报错信息都不一样,总之确实是AJAX请求跨域导致的

    AJAX请求跨域

    我们要做的第一步,就是创建一个文件夹,这个文件夹是用来保存关闭安全策略后的用户信息的,名字可以随意取,位置也可以随意放

    创建一个文件夹

    然后打开控制台,输入下面这段代码

    open -n /Applications/Google\ Chrome.app/ --args --disable-web-security  --user-data-dir=/Users/LeoLee/Documents/MyChromeDevUserData 

    关闭安全策略代码

    大家需要根据自己存放刚刚创建的文件夹的地址来更改上面的代码,也就是下面图中的红框区域谷歌浏览器本地跨域,而网上大多数的教程中也正是缺少了这部分的代码导致很多用户在关闭安全策略时失败

    用户需要根据自己的文件夹地址修改代码

    输入代码,敲下回车,接下来Chrome应该会弹出一个窗口

    Chrome弹窗

    点击启动Google Chrome,会发现与之前的Chrome相比,此时的Chrome多了上方的一段提示,告诉你现在使用的模式并不安全

    浏览器上方会多出一行提示

    接下来可以将之前需要调试的程序页面复制粘贴到新打开的浏览器中,可以看到AJAX跨域的问题已经解决了,数据能够获取到了

    AJAX跨域解决

    注意:

    1.Mac重启之后,非安全模式就会自动关闭了,下次要打开应该是重复以上步骤,如果没有重启Mac,那么之后你所有新打开的浏览器都是非安全模式的

    2.重新开启安全策略的方法很简单就是把命令里面的disable改成enable就ok了(windows下还可以删掉追加的命令)

    版权声明

    本文仅代表作者观点。
    本文系作者授权发表,未经许可,不得转载。

    发表评论