Javascript ajax GET调用在初始页面加载时不包含cookie-sid

时间:2010-05-18 09:11:14

标签: javascript html ajax cookies node.js

在我的应用程序中,当请求/ iframe时,我创建了一个cookie并提供iframe.html文件。在html文件中,我使用Javascript Ajax调用来请求用户数据(/ user),该数据在$(document).ready上调用,需要从cookie传递sid(所以我知道调用已经过身份验证)。 / p>

问题在于,cookie-sid在第一次请求iframe时没有传递Ajax get(当时还没有cookie)。重新加载后,cookie-sid将通过/ user调用传递。

有没有人对修复初始加载有任何建议?

我知道浏览器接收并存储cookie,然后在每次请求新页面时将其发送回网站,但是这也算是初始Ajax调用吗?

1 个答案:

答案 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();
  }