【发布时间】:2019-07-19 18:33:20
【问题描述】:
后端服务器返回
Allow-Control-Allow-Origin : *
Allow-Control-Allow-Credentials: true
所以服务器配置没问题。
但是当我发出请求时,如果我不将withCredentials设置为true,服务器返回401。
现在我想了解为什么设置 withCredentials 有效。 MDN 上的描述没有多大帮助。允许 cookie 如何使其工作?
想象一下,用户从未打开目标后端服务器站点,因此该站点必须没有 cookie。那么在请求中使用 cookie 有什么不同呢?
【问题讨论】:
-
在您的情况下,您必须已经打开了目标服务器站点,或者您的请求代码正在向请求显式添加凭据 - 例如,使用授权请求标头。但是,如果您的请求没有向请求显式添加 Authorization 标头,那么请尝试在浏览器中清除目标服务器站点的 cookie,或者尝试在您以前从未用于访问目标服务器的其他浏览器中进行测试地点。在这些情况下,不会设置任何 cookie,因此您应该得到 401。
-
… 或者有一个重定向尝试设置 cookie,然后另一个重定向检查它们是否存在。您需要提供带有明确问题陈述的minimal reproducible example(例如,来自浏览器开发者工具的网络选项卡的所有请求和响应数据的副本)。我们只能根据您目前提供的信息进行推测。
标签: cors xmlhttprequest