如何将 withCredentials 选项传递给 Request?

Posted

技术标签:

【中文标题】如何将 withCredentials 选项传递给 Request?【英文标题】:How to pass withCredentials option to Request? 【发布时间】:2018-11-29 07:57:57 【问题描述】:

根据CORS spec,withCredentials: true 可以在 XHR 或 Fetch 请求中设置,以在飞行前请求中包含授权凭据。

我正在使用请求库(在浏览器中)。我怎样才能通过该属性?像这样简单地在选项中包含 withCredentials 似乎不起作用:

request.get(
   ...,
   auth: ...,
   withCredentials: true
)

【问题讨论】:

“根据CORS spec,withCredentials: true 可以在 XHR 或 Fetch 请求中设置,以在飞行前请求中包含授权凭据。” — 实际上,这不是 CORS 规范所说的。规范说,授权凭证必须永远在预检请求中发送。请参阅fetch.spec.whatwg.org/#ref-for-credentials%E2%91%A5,其中说,“CORS 预检请求从不包含凭据” 嗯。我真的很困惑。如果 credentials: 'include' 的飞行前请求中未包含凭据,那么……该标志甚至有什么作用? 该标志指定在您自己的代码的实际 GET 请求中包含凭据。我将在回答您的其他问题时对此进行扩展 【参考方案1】:

为了回答我自己的问题,我已经确认 Request 库确实支持 withCredentials: true 选项(或者更确切地说,它的一个依赖项支持),并且它最终被转换为传递给的 credentials: "include" 参数fetch().

正如上面的 cmets 所述,that 的行为不是我所期望的,但问题不在于 Request。

【讨论】:

以上是关于如何将 withCredentials 选项传递给 Request?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 Maven 将“-J”选项传递给 javac?

如何将多个选项传递给 Firefox 中引导轮播的可选选项对象?

jquery 命名空间:如何将默认选项从一种方法传递给子序列方法?

如何将额外的自定义 ./configure autotools 选项传递给 Buildroot 包?

如何使用 Python 将选项传递给 Selenium Chrome 驱动程序?

如何通过 Java 使用 Selenium 将功能和选项传递给 Firefoxdriver