chrome瀏覽器解決 跨域調試問題


 

 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:

 測試地址:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM