将 CORS 调用设置为 GET 而不是 OPTIONS
Setting CORS call to GET not OPTIONS
我正在创建一个 CORS 调用,如下所示:
createCORSRequest: function(method, url) {
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
if ("withCredentials" in xhr) {
// Check if the XMLHttpRequest object has a "withCredentials" property.
// "withCredentials" only exists on XMLHTTPRequest2 objects.
console.log("Sending request with credneitials");
xhr.open(method, url, true);
} else if (typeof XDomainRequest != "undefined") {
// Otherwise, check if XDomainRequest.
// XDomainRequest only exists in IE, and is IE's way of making CORS requests.
xhr = new XDomainRequest();
xhr.open(method, url);
} else {
xhr = null;
}
xhr.setRequestHeader('Authorization', 'Bearer bf6dcfd4e975a007dc8184be6bcf580c'); //Authorization details needed
return xhr;
}
问题是这总是作为 OPTIONS 调用发送,服务器根本不处理。如果我删除
xhr.setRequestHeader('Authorization', 'Bearer bf6dcfd4e975a007dc8184be6bcf580c');
然后它变成一个 GET 请求,但是如果没有访问令牌,服务器将不会处理它。
有没有办法在 GET 请求中发送授权 Header?
或者我必须修改服务器来处理 OPTIONS 请求吗? IE。预检等等。
感谢您的帮助。
如果您设置授权 header,那么您正在发出一个复杂的请求,您必须在浏览器发出 GET 请求之前处理 OPTIONS 预检。
您无法在不处理 OPTIONS 请求的情况下设置 header。
我正在创建一个 CORS 调用,如下所示:
createCORSRequest: function(method, url) {
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
if ("withCredentials" in xhr) {
// Check if the XMLHttpRequest object has a "withCredentials" property.
// "withCredentials" only exists on XMLHTTPRequest2 objects.
console.log("Sending request with credneitials");
xhr.open(method, url, true);
} else if (typeof XDomainRequest != "undefined") {
// Otherwise, check if XDomainRequest.
// XDomainRequest only exists in IE, and is IE's way of making CORS requests.
xhr = new XDomainRequest();
xhr.open(method, url);
} else {
xhr = null;
}
xhr.setRequestHeader('Authorization', 'Bearer bf6dcfd4e975a007dc8184be6bcf580c'); //Authorization details needed
return xhr;
}
问题是这总是作为 OPTIONS 调用发送,服务器根本不处理。如果我删除
xhr.setRequestHeader('Authorization', 'Bearer bf6dcfd4e975a007dc8184be6bcf580c');
然后它变成一个 GET 请求,但是如果没有访问令牌,服务器将不会处理它。
有没有办法在 GET 请求中发送授权 Header?
或者我必须修改服务器来处理 OPTIONS 请求吗? IE。预检等等。
感谢您的帮助。
如果您设置授权 header,那么您正在发出一个复杂的请求,您必须在浏览器发出 GET 请求之前处理 OPTIONS 预检。
您无法在不处理 OPTIONS 请求的情况下设置 header。