Ajax加载子域跨站cookie丢失的问题.

咱们有两个网站一个是main.xxx.cn 一个是 preveiw.xxx.cnajax

main.xxx.cn 页面须要加载preview.xxx.cn的内容。cookie

项目里面出现了两种的加载preview.xxx.cn内容的方式。一种是iframe另外一个是ajax。dom

1.iframe加载的要求 两个页面都把 document.domain = 设置成根域名 就是xxx.cn。
(其它thickbox magnific popup 若是加载同一个域名下面的页面也须要去设置 document.domain否者的话也会形成js没法访问。由于域名被你改了)。网站

2.ajax 加载的时候 须要设置 orign url

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

origin的标签能够经过firebug看到  大约是http(s)://main.xxx.cn 也能够用 *域名

可是只这样设置的话会发现 preview.xxx.cn原来设置的cookie值没法传递。 须要设置一下 withCredentials 象下面这样。 而且须要把 orgin的值强制设成彻底同样的,不能用 通配符 *.it

还须要多加一个httpHeader
    Response.AddHeader("Access-Control-Allow-Credentials", "true");bug

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

}

相关文章
相关标签/搜索