1

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

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

4

1 回答 1

3

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

于 2012-06-12T14:34:18.187 回答