Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 飞行前响应中的访问控制允许标头不允许请求标头字段X-CSRFToken_Javascript_Xmlhttprequest_Csrf_Access Control_Request Headers - Fatal编程技术网

Javascript 飞行前响应中的访问控制允许标头不允许请求标头字段X-CSRFToken

Javascript 飞行前响应中的访问控制允许标头不允许请求标头字段X-CSRFToken,javascript,xmlhttprequest,csrf,access-control,request-headers,Javascript,Xmlhttprequest,Csrf,Access Control,Request Headers,我正在尝试对GroupMe API进行API调用以获取JSON响应,但出现以下错误: XMLHttpRequest cannot load ...(call url)... Request header field X-CSRFToken is not allowed by Access-Control-Allow-Headers in preflight response. 我的Javascript如下所示: var xmlhttp = new XMLHttpRequest(); var

我正在尝试对GroupMe API进行API调用以获取JSON响应,但出现以下错误:

XMLHttpRequest cannot load ...(call url)... 
Request header field X-CSRFToken is not allowed by Access-Control-Allow-Headers in preflight response.
我的Javascript如下所示:

var xmlhttp = new XMLHttpRequest();
var url = (call url)

xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {

    xmlhttp.open("GET", url, true);
    xmlhttp.setRequestHeader("Access-Control-Allow-Headers", "*");
    xmlhttp.setRequestHeader('Access-Control-Allow-Origin', '*');

    $.getJSON(url, function(data){
        var array = data.response.messages.reverse();
        for(i = 0; i<array.length; i++){
            $('.messages').append("<div class='message'>"+array[i].name+":<br>"+array[i].text+"</div>");
        }
    });
    }
}

xmlhttp.open("GET", url, true);
xmlhttp.send();
var xmlhttp=new XMLHttpRequest();
var url=(调用url)
xmlhttp.onreadystatechange=函数(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
open(“GET”,url,true);
setRequestHeader(“访问控制允许头”,“*”);
setRequestHeader('Access-Control-Allow-Origin','*');
$.getJSON(url、函数(数据){
var数组=data.response.messages.reverse();

对于(i=0;i如果您正在呼叫第三方服务器,对于飞行前请求,
响应标头
应包含
访问控制允许标头:X-CSRF-Token
,以消除您遇到的错误。但我们无法控制它。

如果呼叫我们的服务器,您可以在服务器上添加
Access Control Allow Headers:X-CSRF-Token
响应飞行前请求,类型为
OPTIONS
,如果发送
ajax jQuery请求
,且
crossDomain参数设置为true

,则无需从客户端处理这些头,这些是服务器响应头。m确保您的服务器在ACAH中白名单
X-CSRFToken
,如果这是响应的一部分。哦,而且我们JSER实际上也不做预飞,浏览器为我们做预飞,让我们的“常规ass”如果ajax通过,它就可以工作…谢谢!添加访问控制允许标题:X-CSRF-Token,内容类型成功了!我应该把它放在axios的哪里?