最近做前端開發總是遇到一個很奇怪的現象,同一個AJAX請求,在Chrome里調試的時候就會提示跨域,但是在手機模擬器或者真機上調試的時候就不會,於是百度了一下,發現是Chrome的安全策略導致的,需要在后台設置一下
在網上找了半天,發現很多大家通用的方法在我這兒都不行,今天終於找到一個可行,在這里分享給大家
首先要說的是,我的版本是59的,也就是說是49以后的版本,所以49以后版本的朋友可以用我的這個方法,如果還是之前的老版本,網上其他的通用方法應該就是OK的
同源策略
的限制,會出現跨站請求報錯。慶幸的是,chrome提供了開啟允許跨站請求的方法

首先給大家看看我的跨域報錯信息,可能每個人的報錯信息都不一樣,總之確實是AJAX請求跨域導致的


我們要做的第一步,就是創建一個文件夾,這個文件夾是用來保存關閉安全策略后的用戶信息的,名字可以隨意取,位置也可以隨意放

然后打開控制台,輸入下面這段代碼
open -n /Applications/Google\ Chrome.app/ --args --disable-web-security --user-data-dir=/Users/LeoLee/Documents/MyChromeDevUserData

大家需要根據自己存放剛剛創建的文件夾的地址來更改上面的代碼,也就是下面圖中的紅框區域,而網上大多數的教程中也正是缺少了這部分的代碼導致很多用戶在關閉安全策略時失敗

輸入代碼,敲下回車,接下來Chrome應該會彈出一個窗口

點擊啟動Google Chrome,會發現與之前的Chrome相比,此時的Chrome多了上方的一段提示,告訴你現在使用的模式並不安全

接下來可以將之前需要調試的程序頁面復制粘貼到新打開的瀏覽器中,可以看到AJAX跨域的問題已經解決了,數據能夠獲取到了

注意:
1.Mac重啟之后,非安全模式就會自動關閉了,下次要打開應該是重復以上步驟,如果沒有重啟Mac,那么之后你所有新打開的瀏覽器都是非安全模式的
2.重新開啟安全策略的方法很簡單就是把命令里面的disable改成enable就ok了(windows下還可以刪掉追加的命令)
作者:LeoLeeYEAH
鏈接:https://www.jianshu.com/p/2db73311fcbe