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

Flo*_*anB 5 cookies firefox cross-domain cors

我遇到Firefox的问题,而Chrome工作正常.情况如下:

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

客户发送:

Origin: https://website1.com
Run Code Online (Sandbox Code Playgroud)

服务器返回:

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: ...
Run Code Online (Sandbox Code Playgroud)

还有什么我对CORS的遗漏?

谢谢!

prz*_*_li 0

Access-Control-Allow-Credentials: true
Run Code Online (Sandbox Code Playgroud)

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

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