Ajax加載子域跨站cookie丟失的問題.


我們有兩個網站一個是main.xxx.cn 一個是 preveiw.xxx.cn

main.xxx.cn 頁面需要加載preview.xxx.cn的內容。

項目里面出現了兩種的加載preview.xxx.cn內容的方式。一種是iframe另一個是ajax。

1.iframe加載的要求 兩個頁面都把 document.domain = 設置成根域名 就是xxx.cn。
(其它thickbox magnific popup 如果加載同一個域名下面的頁面也需要去設置 document.domain否者的話也會造成js無法訪問。因為域名被你改了)。

2.ajax 加載的時候 需要設置 orign

  fResponse.AddHeader("Access-Control-Allow-Origin", origin);

origin的標簽可以通過firebug看到  大約是http(s)://main.xxx.cn 也可以用 *

但是只這樣設置的話會發現 preview.xxx.cn原來設置的cookie值無法傳遞。 需要設置一下 withCredentials 象下面這樣。 並且需要把 orgin的值強制設成完全一樣的,不能用 通配符 *.

還需要多加一個httpHeader
    Response.AddHeader("Access-Control-Allow-Credentials", "true");

   $.ajax({
                    url: 1.aspx
                    dataType: "Html",
                    xhrFields: {
                        withCredentials: true
                    },

}

 


免責聲明!

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



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