我知道这是一个新问题,但是我对学习Ajax并不陌生。我正在阅读一些代码,并碰到了这行
var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function () {
if (this.readyState === 4) {
console.log(this.responseText);
}
});
xhr.open("GET", "https://api.vimeo.com/channels/180097");
xhr.setRequestHeader("Authorization", "Bearer <insert_access_token>");
xhr.setRequestHeader("Cache-Control", "no-cache");
xhr.setRequestHeader("Postman-Token", "5f32ac6c-2c86-4fbc-a7cb-43c8b01f7ea7");
xhr.send(data);
我能够遵循其余的代码;但是,这部分有点混乱。您是否使用它来覆盖凭据?
在documentation中,它表示以下内容:
xhrFields 引用
类型:PlainObject
要在本机XHR上设置的fieldName-fieldValue对的对象 宾语。例如,您可以使用它将withCredentials设置为true 跨域请求。
我有点明白我在说什么。但是,我不确定它指的是哪种跨域请求。
再次抱歉问这个菜鸟问题。请不要拒绝我的问题D:
祝你有美好的一天:)!
答案 0 :(得分:1)
根据Mozilla文档:
XMLHttpRequest.withCredentials属性是一个布尔值, 指示是否应进行跨站点访问控制请求 使用Cookie,授权标头或TLS等凭证进行 客户证书。设置withCredentials不会影响 同一站点的请求
根据CORS规范,不会发送cookie,但是当您设置XMLHttpRequest.withCredentials = true
时,cookie将被发送到在其他域中运行的服务器。通常,如果服务器API位于其他域中,则不会发送cookie。
为相同的原始请求设置此属性无效。但是,为了使其正常工作,服务器还必须通过将Access-Control-Allow-Credentials
响应标头设置为true
来启用凭据。
请参考Mozilla文档: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/withCredentials