在我的应用程序中,当请求/ iframe时,我创建了一个cookie并提供iframe.html文件。在html文件中,我使用Javascript Ajax调用来请求用户数据(/ user),该数据在$(document).ready上调用,需要从cookie传递sid(所以我知道调用已经过身份验证)。 / p>
问题在于,cookie-sid在第一次请求iframe时没有传递Ajax get(当时还没有cookie)。重新加载后,cookie-sid将通过/ user调用传递。
有没有人对修复初始加载有任何建议?
我知道浏览器接收并存储cookie,然后在每次请求新页面时将其发送回网站,但是这也算是初始Ajax调用吗?
答案 0 :(得分:1)
默认情况下,“凭据”如 Cookie和HTTP身份验证信息 未使用跨站点请求发送 XMLHttpRequest的。为了发送它们, 你必须设置withCredentials XMLHttpRequest对象的属性。
请参阅http://hacks.mozilla.org/2009/07/cross-site-xmlhttprequest-with-cors/。
示例强>
var request = new XMLHttpRequest();
var url = 'http://bar.other/resources/credentialed-content/';
function callOtherDomain(){
if(request)
{
request.open('GET', url, true);
request.withCredentials = "true";
request.onreadystatechange = handler;
request.send();
}