jQuery.ajax xhrFields: {withCredentials: true} 的作用是什么?

Tom*_*nor 12 javascript jquery

我知道这是一个新手问题,但我是学习 Ajax 的新手。我正在阅读一些代码并遇到了这一行

xhrFields: {withCredentials: true}
Run Code Online (Sandbox Code Playgroud)

我能够遵循代码的其余部分;然而,这部分有点混乱。您是否使用它来覆盖凭据?

文档中,它说了以下内容:

xhrFields 块引用

类型:普通对象

要在本机 XHR 对象上设置的 fieldName-fieldValue 对的对象。例如,如果需要,您可以使用它将跨域请求的 withCredentials 设置为 true。

我有点明白它在说什么。但是,我不确定它指的是哪种跨域请求。

我很抱歉再次问这个菜鸟问题。请不要否决我的问题 D:

祝你有美好的一天:)!

Ful*_*Guy 7

根据 Mozilla 文档:

XMLHttpRequest.withCredentials 属性是一个布尔值,指示是否应使用凭据(例如 cookie、授权标头或 TLS 客户端证书)发出跨站点访问控制请求。设置 withCredentials 对同站点请求没有影响

根据 CORS 规范,不会发送 cookie,但是当您设置 cookie 时,XMLHttpRequest.withCredentials = truecookie 将发送到在不同域中运行的服务器。通常,如果服务器 API 位于不同的域中,则不会发送 cookie。

当为同源请求设置此属性时,此属性无效。但为了使其正常工作,服务器还必须通过将Access-Control-Allow-Credentials响应标头设置为 来启用凭据true

请参阅 Mozilla 文档: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/withCredentials