Chrome設定跨域訪問方式--disable-web-security不生效原因,以及出現--disable-web-security,但是實際上瀏覽器不能跨域訪問解決方案
Chrome設定跨域訪問方式--disable-web-security不生效原因,以及出現--disable-web-security,但是實際上瀏覽器不能跨域訪問的原因:
1、設定跨域,在chrome快捷方式右鍵‘屬性’,‘快捷方式’,‘目標’ 路徑最後邊按一下空格,再新增以下程式碼:
--args --disable-web-security --user-data-dir=D:\MyChromeDevUserData
或者
--disable-web-security --user-data-dir=D:\MyChromeDevUserData
‘D:\MyChromeDevUserData’是我自己隨便找了個資料夾,可以自己隨便配置,不這麼寫的話,新版本瀏覽器可能出現設定不生效的問題。
這個方式等於是使用者在自己電腦建立了一套chrome的私有化瀏覽器,裡邊的設定配置等均為私有化設定。此時找到chrome安裝源目錄,開啟chrome.exe,會發現,在私有chrome配置的所有書籤,選項等,在這個chrome裡都沒有。
備註:如果要刪掉D:\MyChromeDevUserData,一定要先做書籤、賬號密碼等的備份。一經刪除,等於是把個人電腦裡的私有chrome解除安裝了,資料都不會保留
2、設定成功以後再開啟瀏覽器,會有提示:
“您使用的是不受支援的命令列標記: --disable-web-security,穩定性和安全性會有所下降”
此時,正常使用者都可以進行跨域訪問了,比方本地的前端專案,直連測試或者線上環境的介面(前提是目標環境在當前瀏覽器登陸過,已經存在當前賬號的cookies,session等資訊)
3、but,有的使用者還是不能訪問,此時在console控制檯裡會看到一段背景是黃顏色的字:
'...Specify SameSite=None and Secure if the cookie should be sent in cross-site...'
這是什麼意思呢,找百度翻譯結果:如果cookie應跨站點發送,請指定SameSite=None和Secure
此時瀏覽器還是限制了cookies的跨域訪問,所以部分人的電腦還是不能使用跨域,解決方案:
位址列輸入:
chrome://flags
再搜尋:SameSite by default cookies,找到‘SameSite by default cookies’以及‘Cookies without SameSite must be secure’,在後邊有個下拉框,這倆選項均選擇:‘disabled’,瀏覽器會提示紅字:‘警告:您所要使用的是實驗性功能!’
忽略警告,此時瀏覽器是我們本地建立的D:\MyChromeDevUserData,點選右下角的Relaunch按鈕,瀏覽器會自動重啟,並且保留所有當前已開頁面。
聯調時使用這個模式,如果訪問其它購物等網站,建議還是使用chrome.exe安裝源目錄的chrome.exe,避免出現不必要的麻煩