【问题标题】:Http requests withCredentials what is this and why using it?Http 请求 withCredentials 这是什么以及为什么使用它?
【发布时间】:2014-12-10 17:16:32
【问题描述】:

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

【问题讨论】:

  • 您不能使用 withCredential 并分享您的控制台 CORS 错误的屏幕截图吗?
  • 这不是错误,它不会为我保存页面之间的会话变量。

标签: javascript angularjs http


【解决方案1】:

简答:

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

更长的解释:

当您向不同的源服务器发出 Ajax 请求时,浏览器可能会向服务器发送一个 OPTIONS 飞行前请求以发现端点的 CORS 策略(对于非 GET 请求)。

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

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

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

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

  • 如果 withCredentials 在 XHR 对象上设置为 true
  • 并且服务器已将 CORS 标头 Access-Control-Allow-Credentials: true 包含在 pre-flight OPTIONS 中

【讨论】:

【解决方案2】:

Axios documentation 的简短回答

withCredentials 表示是否应使用凭据进行跨站点访问控制请求

凭据是 cookie、授权标头或 TLS 客户端证书 Reference

withCredentials 的默认值为false

【讨论】:

    猜你喜欢
    • 2011-06-18
    • 1970-01-01
    • 2012-09-12
    • 2014-05-27
    • 2011-10-22
    • 2018-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多