rror:SecurityError:不允许请求方法 - XMLHTTPRequest - NodeJS

时间:2018-06-07 18:32:00

标签: node.js xml cors

我正在尝试使用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);
});

1 个答案:

答案 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();