asp.net(C#)跨域及跨域写Cookie问题
作者:
在网站www.A.com下通过iframe或ajax调用www.B.com下的内容时,默认情况下IE会阻止www.B.com写任何Cookie
解决方法是:
//www.B.com里的被调用的页面需要写P3P头,从而解除IE对写Cookie的阻止
context.Response.AddHeader("P3P", "CP=CAO PSA OUR");
//www.A.com里通过ajax调用www.B.com里的内容时,是跨域访问,需要使用jsonp,为配合其工作需要添加下面两句,生成jsonp返回
context.Response.ContentType = "text/plain";
context.Response.Write(string.Format("{0}('OK')", context.Request["callback"]));
//jsonp调用进行跨域访问
jQuery.ajax({
url: url,
type: 'GET',
data: data,
dataType: 'jsonp',
success: function (data) {
window.location.href = toURL;
}
});
复制代码 代码如下:
//www.B.com里的被调用的页面需要写P3P头,从而解除IE对写Cookie的阻止
context.Response.AddHeader("P3P", "CP=CAO PSA OUR");
//www.A.com里通过ajax调用www.B.com里的内容时,是跨域访问,需要使用jsonp,为配合其工作需要添加下面两句,生成jsonp返回
context.Response.ContentType = "text/plain";
context.Response.Write(string.Format("{0}('OK')", context.Request["callback"]));
复制代码 代码如下:
//jsonp调用进行跨域访问
jQuery.ajax({
url: url,
type: 'GET',
data: data,
dataType: 'jsonp',
success: function (data) {
window.location.href = toURL;
}
});