1、關閉chrome瀏覽器(全部)
我們可以通過使用chrome命令行啟動參數來改變chrome瀏覽器的設置,具體的啟動參數說明參考這篇介紹。https://code.google.com/p/xiaody/wiki/ChromiumCommandLineSwitches
這里介紹的是--disable-web-security參數。這個參數可以降低chrome瀏覽器的安全性,禁用同源策略,利於開發人員本地調試。
2、找到桌面chrome瀏覽器圖標,右鍵“屬性” 如圖:
3、在目標最后添加 :
--disable-web-security --user-data-dir
前邊有空格, 在 '--' 前
"C:\Program Files (x86)\Google\Chrome\Application
\chrome.exe" --disable-web-security --user-data-dir
4、確定 ,重新打開瀏覽器,這時會出現:
這時就可以跨域訪問了,如果涉及到cookie傳遞那就繼續往下看。。。。。。。
==============================================================================================================
實際中,情況是多變的,比如服務器與前端 cookie傳輸
理論上:
$.ajax({ headers: {'Cookie' : document.cookie }, url: "sub.domain.com", success: function(){} })
通過修改請求頭是可以傳遞cookie等信息的。但是w3c的標准寫的很清楚,cookie,connection和content-length等是不安全的字段,
容易導致多種的request smuggling攻擊,不允許編程設置。這些字段瀏覽器會自動幫你設置,
如果設置就會報出錯誤:“Refused to set unsafe header "Content-Length"。
通過修改請求頭是可以傳遞cookie等信息的。但是w3c的標准寫的很清楚,cookie,connection和content-length等是不安全的字段,
容易導致多種的request smuggling攻擊,不允許編程設置。這些字段瀏覽器會自動幫你設置,
如果設置就會報出錯誤:“Refused to set unsafe header "Content-Length"。
==================================================================================================
了解這些后,跨域的同時,如何把cookie傳遞過去那 ?
1、在本地找到
C:\Windows\System32\drivers\etc\host 文件打開
指定域名映射到本地,這個域名可以任意,后邊子域名要跟實際一致。
在setcookie時,會set指定域名下,
document.cookie = "pn=miao-test;path=/;domain=miao.cn";
本地可以是apache 或是 nginx服務都可以,配置默認項目啟動路徑后,啟動apache:
測試地址: