更改XmlHttpRequest的URL会导致cookie未被发送

时间:2012-09-26 15:38:23

标签: javascript cookies

我有一个内部Web服务器,它提供了一个界面,让我可以查看和更改该服务器上的一些数据。当我在一个位置时,我可以直接访问服务器,但是从另一个位置我必须创建一个到服务器的ssh隧道。因此,我在浏览器中输入的网址会根据我的位置而变化:例如,http://myserver/blahhttp://localhost:8000/blah。它是相同的服务器,只是一个不同的主机名。

这很不方便,因为我偶尔会忘记将更改保存在一个位置,当我去其他位置时,突然找不到服务器。这也很不方便,因为我不得不重新加载页面。我想只加载页面一次,让它在任何一个地方工作。所以,我想我会在我的XmlHttpRequest处理中添加一些代码来检测是否找不到服务器并使用备用服务器地址重新发出请求。问题是,当发生这种情况时,我发现我的cookie没有发送到服务器。

我有localhostmyserver的Cookie。它们实际上是相同的值集,因为它实际上是相同的服务器,但它们显然是重复的,因为服务器是从两个不同的主机名访问的。如果我手动更改服务器的主机名,我没有问题,但显然这是我试图避免的。

我怀疑可能存在一些安全问题,但在重新阅读Cookie的工作方式后,我无法明确指出这种行为,或者如何修复它。

顺便说一下,问题不在于我正在尝试进行跨站点请求。我通过返回字段“Access-Control-Allow-Origin:*”在服务器端明确允许这个,我对这部分请求没有任何问题。使用firebug,我可以看到问题在于,当请求重新发布到新主机名时,即使存在该主机名的cookie,也不会发送cookie。

0 个答案:

没有答案