我正在尝试使用XMLHTTPRequest执行get请求并设置新的请求标头,但是我仍然收到405错误。它可能是CORS,但我尝试过很多没有运气的东西。
错误:SecurityError:不允许请求方法 我正在使用NPM包XMLHTTPRequest
My get request:
const cjURL = 'https:URL';
const cjKey = 'Key'
let header = new Headers();
let xmlRHeader = new XMLHttpRequest();
xmlRHeader.open().setRequestHeader('authorization', 'value');
header.append('Content-Type', 'application/xml; charset=utf-8');
header.set('autorization', `${this.cjKey}`);
let req = new Request(cjURL, {
method: 'GET',
headers: header,
mode: 'cors'
});
fetch(req)
.then ( (response) => {
if(response !== null){
return response;
} else {
throw new Error('Bad HTTP Request');
}
})
.then ( (jsonData) => {
console.log(jsonData);
})
.catch ((err) => {
console.log('error', err.message);
});
答案 0 :(得分:0)
我终于得到了我需要的请求而不用担心CORS。为此,我使用了以下代码:
const cjURL ='网络服务的网址'
xhr是分配给XMLHTTPRequest()的变量。 您必须使用open然后指定方法。在这种情况下,我需要GET方法。 如果之后将方法设置为true,则会使其异步。
接下来,由于我的Web服务要求我指定REQUEST标头。我添加了一个带有setHRequestHeader的请求标头。注意:您只能在OPEN之后和SEND之前设置请求标头。
然后我想从1-4检查我的请求的每个状态,以检查每个州的返回。 View all Ready States Here
有关此问题的更多文档,请查看此documentation.
const xhr = new XMLHttpRequest();
xhr.open('GET', cjURL, true);
xhr.setRequestHeader('authorization', cjKey)
xhr.onreadystatechange = function (){
if(this.readyState == 4 && this.status == 200){
console.log(xhr.responseText);
} else if (this.readyState == 3){
console.log('3')
console.log(xhr.responseText);
} else if (this.readyState == 2){
console.log('2')
console.log(xhr.responseText);
} else if (this.readyState == 1){
console.log('1')
console.log(xhr.responseText);
}
}
xhr.send();