Asp.net jquery ajax request.cookies跨域

Asp.net jquery ajax request.cookies跨域,asp.net,ajax,xmlhttprequest,cross-domain,jsonp,Asp.net,Ajax,Xmlhttprequest,Cross Domain,Jsonp,由于跨域问题,我决定尝试一种新的解决方法来检测我的两个域之间的会话。我认为这个过程会起作用,因为我没有尝试设置任何cookie,它在chrome和firefox中运行良好,但在IE9中不起作用 我已经在调试模式下完成了,我请求的aspx页面无法访问它自己的request.Cookies,而当我使用chrome时它可以访问 这个过程是: 在domain1(asp.net mvc应用程序)上,用户登录。作为登录过程的一部分,在该域上设置cookie。如果我点击这个服务器上的测试页面,我可以看到coo

由于跨域问题,我决定尝试一种新的解决方法来检测我的两个域之间的会话。我认为这个过程会起作用,因为我没有尝试设置任何cookie,它在chrome和firefox中运行良好,但在IE9中不起作用

我已经在调试模式下完成了,我请求的aspx页面无法访问它自己的request.Cookies,而当我使用chrome时它可以访问

这个过程是:

在domain1(asp.net mvc应用程序)上,用户登录。作为登录过程的一部分,在该域上设置cookie。如果我点击这个服务器上的测试页面,我可以看到cookie已经设置好了

在domain2(一个asp.NETWebForms应用程序)上,我向domain1上的测试页面发出jQuery.ajax请求,这意味着检查cookie并返回加密字符串

在通过ajax调用domain2的请求过程中,我可以看到request.cookies集合未填充。令人沮丧的是,User.Identity.IsAuthenticated是真的,但我无法访问我设置的cookie


这仅仅是整个跨域安全运行的另一个例子吗?在我看来,即使使用jsonp和所有其他Hheader等进行ajax调用,在这种情况下也无济于事,因为它似乎不止于此?

您的假设似乎是正确的。如果JQuery连接到的域与页面所在的域不同,则默认情况下JQuery不会发送cookie

您可以尝试使用jqueryapi中的xhrFields来执行跨域调用

$.ajax({
url: a_cross_domain_url,
xhrFields: {
   withCredentials: true
}
});


希望有帮助

看来你的假设是正确的。如果JQuery连接到的域与页面所在的域不同,则默认情况下JQuery不会发送cookie

您可以尝试使用jqueryapi中的xhrFields来执行跨域调用

$.ajax({
url: a_cross_domain_url,
xhrFields: {
   withCredentials: true
}
});

希望有帮助