我已经在标题问题上苦苦挣扎了几天,没有成功。我有一个需要基本身份验证的ASP.NET MVC 3 REST服务器。我想编写JS API,使用XMLHHttpRequest以AJAX方式访问此服务器。
对于包括AJAX的任何HTTP请求的响应,服务器添加"Set-Cookie: ASP.NET_SessionId=<session id here>; path=/; HttpOnly"
标头-可以。但是似乎Set-Cookie标头不会以任何方式被浏览器处理-因此,即使我使用相同的XMLHttpRequest对象执行下一个请求,cookie的设置也不正确,因此我无法维护会话。我可能做错了什么?
我的脚本已经在Firefox 6和Safari 5中进行了测试,并且在两个浏览器中都遇到相同的问题。
尽管我没有找到解决原始问题的任何相关解决方案,但通过为ASP.NET会话和身份验证工件实现自定义传输,我已经能够克服它。
[通常,在我的解决方案中,所有ASP.NET工件都作为附加到响应内容的JSON字符串从服务器传输到客户端,以及作为自定义HTTP标头从客户端传输到服务器。
不知道我没有通过这种方式重新发明轮子,但至少它能起作用...
您的主题提到您正在使用CORS。如果是这样,请尝试在响应中添加以下标头:
Access-Control-Allow-Credentials: true