即使所有CORS允许,Firefox也不会保留跨域发送的cookie

时间:2018-03-31 19:23:48

标签: firefox cookies cors cross-domain

我在使用Firefox时遇到问题,而Chrome工作正常。情况如下:

  • Website1.com在SSL中返回一个html页面。
  • 此页面通过img标签或XMLHttpRequest(同一问题)向SSL中的Website2.com发出请求。
  • Website2.com会返回一个自行设置的Cookie
  • Firefox会忽略此Cookie。它永远不会存储,即使它显示在控制台中。
  • 控制台不会抱怨任何事情。

客户发送:

Origin: https://website1.com

服务器返回:

Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: *
Access-Control-Allow-Methods: *
Access-Control-Allow-Origin: https://website1.com
Access-Control-Expose-Headers: *
Set-Cookie: ...

我还缺少什么关于CORS的内容?

谢谢!

1 个答案:

答案 0 :(得分:0)

Access-Control-Allow-Credentials: true

是一个特殊标志。如果一方声明它,另一方也必须声明它,否则它的安全性就会失败,浏览器将不会接受数据。

因此将相同的标头添加到客户端请求。 (或者,如果您控制服务器,请考虑不使用Cookie并通过其他机制传递数据)