Http 请求与凭据这是什么以及为什么使用它

Http requests withCredentials what is this and why using it?

本文关键字:为什么 是什么 请求 Http      更新时间:2023-09-26

我在使用节点和角度的 CORS 时遇到了问题,使用 true 添加此选项解决了我的问题。但我找不到关于它是什么以及它在做什么的信息。请有人解释一下吗?

简短回答:

withCredentials()使您的浏览器在 XHR 请求中包含 cookie 和身份验证标头。如果您的服务依赖于任何 Cookie(包括会话 Cookie(,则它仅适用于此选项集。

更长的解释:

当您向其他源服务器发出 Ajax 请求时,浏览器可能会向服务器发送 OPTIONS 预检请求,以发现端点的 CORS 策略(对于非 GET 请求(。

由于请求可能是由恶意脚本触发的,为了避免自动将身份验证信息泄露到远程服务器,浏览器应用以下规则:

对于 GET 请求,请在服务器请求中包含 cookie 和身份验证信息:

  • 如果在调用 XHR 客户端时将 withCredentials 选项设置为 true
  • 如果服务器回复不包含 CORS 标头Access-Control-Allow-Credentials: true,则在将对象返回给 Javascript 之前丢弃响应

对于非 GET 请求,请仅包含 Cookie 和身份验证信息:

  • 如果在 XHR 对象上将withCredentials设置为 true,则
  • 并且服务器已在预检选项中包含 CORS 标头Access-Control-Allow-Credentials: true

来自 Axios 文档

的简短回答 withCredentials指示是否应使用凭据

发出跨站点访问控制请求

凭据是 Cookie、授权标头或 TLS 客户端证书参考

withCredentials的默认值为 false

相关文章: