浏览器中XMLHttpRequest级别2的withCredentials标志的行为

时间:2012-06-11 19:37:43

标签: javascript ajax cookies cors

我正在尝试在CORS环境中的XMLHttpRequest中设置cookie,我在Set-Cookie Header中最后一次调用我的服务器(使用Restlet开发)时收到cookie。由于我无法阅读此标题,我必须将控件留给浏览器(在本例中为Chrome),对服务器的所有请求必须在Cookie标头中包含相同的值(第一个请求中的接收cookie)。 我必须在第一次调用中在xhr请求中放入withCredentials(并在服务器中设置allow-credentials标头)?这个标志将采用Set-Cookie并在Cookie头上放入下一个xhr请求?

有人可以在浏览器中澄清withCredentials标志的行为吗?和其他问题,在cors我可以访问document.cookie来设置它吗? (如果我可以setRequestHeader(“Cookie”,value))????

1 个答案:

答案 0 :(得分:3)

可能您遇到了Preflight请求问题。如果您添加额外的标头或使用withCredentials,浏览器将首先尝试使用OPTIONS HTTP动词发出预检请求(http://www.w3.org/TR/cors/#cross-origin-request-with-preflight-0)。在预检中,凭据将被删除(包括Cookie) - 如果是这种情况,请在Chrome网络面板中查看。