我有一个api,它需要很少的头才能获得response.Below,它就是工作的邮递员。

现在,Iam执行http调用来使用以下代码是Iam使用的
var jobendpoint = 'http://rundeck:4440/api/14/project/Demo/jobs';
var http = new XMLHttpRequest();
http.open('GET',jobendpoint,false);
http.setRequestHeader('Accept','application/json');
http.setRequestHeader('Content-type','application/json');
http.setRequestHeader('X-Rundeck-Auth-Token','XgTeIxQLUiv3lOSl8cXNkt4bxIGFjbzl');
http.send();
var joblist = http.responseText;
http.onreadystatechange = function() {//Call a function when the state changes.
if(http.readyState === XMLHttpRequest.DONE && http.status == 200) {
joblist = http.responseText;
}
}
return joblist
}但是当我尝试这样做的时候,它是不起作用的,我可以看到标题不是正确的,passed.How,我们可以把这些头传递给这个,获得call.can,有人帮助。
更新错误*我得到403个禁止错误,因为我的标题不正确set.Below是火狐的网络选项卡中传递的标题的屏幕截图

我在firefox /w选项卡中直接编辑了标题并发送了调用,worked.Below就是屏幕快照

怎样才能像我在第二个屏幕截图中那样添加标题
发布于 2017-07-04 17:26:12
XMLHttpRequest.setRequestHeader()的MDN页面声明:
对于您的自定义字段,当您向跨域发送请求时,可能会遇到“在飞行前响应中不允许访问控制-允许-头”异常。在这种情况下,您需要在服务器端的响应头中设置"访问-控制-允许-头“。
在您的示例中,X-Rundeck-Auth-Token头是这样一个自定义标头,因此必须在来自服务器的Access-Control-Allow-Headers响应头中列出这个标头,否则您将得到上述错误,请求将失败。
Accept、Accept-Language、Content-Type、Content-Length是可以设置的白色标题,无需在Access-Control-Allow-Headers头中指定它们;还有一个请求标头列表是永远不能设置的,即使列出了它们。
https://stackoverflow.com/questions/44911095
复制相似问题