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