当域具有端口号时,Firefox不接受CORS cookie

时间:2011-07-08 15:47:53

标签: jquery ajax firefox cookies cors

我有一个奇怪的问题,我有CORS在没有cookie的情况下工作,现在我正在添加cookie支持,因为我的web服务使用cookie作为其某些路由的认证机制的一部分。

现在,当我设置xhr.withCredentials = true时,它会接收并接受cookie,但后来我意识到cookie的域名是“localhost”,后来对服务的调用不会发送cookie。对于为什么它不会重新发送cookie,这仍然是一个部分未知,但是假设它是因为实际服务驻留在“localhost:1893”而不是“localhost”,就像域名所说的那样。

所以...我更改了服务中的域以正确反映端口号,因此它是“localhost:1893”。但是,当CORS请求现在发生时,它会在响应中收到cookie(您可以在firebug响应中看到它),但cookie是灰色的,不会出现在firebug的实际cookie部分中。

有人能否对此有所了解?

  • 使用Firefox 5
  • 使用jquery 1.6.1
  • XHR已正确设置了问题
  • 服务器返回正确的CORS标头

1 个答案:

答案 0 :(得分:1)

虽然CORS允许在服务器之间发送/接收cookie(通过将withCredentials设置为true),但cookie上的跨域限制仍然适用。例如,您无法使用document.cookie访问JavaScript中的cookie。我想Firebug遵循相同的规则。