我正在编写一些代码,向我们的Web服务器发出AJAX请求。我们的服务器运行一些逻辑,然后用一些JSON响应。它也可以使用set-cookie标头进行响应:
Set-Cookie: our_organisation=[uuid]; domain=.our_organisation.com; path=/; expires=[soon]
据我所知,它适用于Chrome和Safari,但不适用于Firefox。如果它是图像请求,Firefox 将接受cookie。我在这里做错了吗?
我已经遇到过一个问题,我无法在Firefox中读取客户端的AJAX响应;通过在响应标头中设置Access-Control-Allow-Origin: *
来解决此问题。
答案 0 :(得分:2)
这是跨站点XMLHttpRequest?
如果是,则每http://dev.w3.org/2006/webapi/XMLHttpRequest-2/ withCredentials
默认为false,因此用于CORS的“凭证标志”设置为false,然后根据http://dvcs.w3.org/hg/cors/raw-file/tip/Overview.html设置“block cookies”标志在HTTP get期间,每个http://www.whatwg.org/specs/web-apps/current-work/multipage/fetching-resources.html#fetch表示忽略Set-Cookie
标头。听起来像Chrome和Safari只是没有遵循这里的规范。
您可以在XHR对象上设置withCredentials = true
以发送Cookie。但请注意,如果您这样做,则必须在Access-Control-Allow-Origin
中列出实际来源;你不能只使用*
。