Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.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 访问控制允许标头返回两个值_Javascript_Ajax_Api - Fatal编程技术网

Javascript 访问控制允许标头返回两个值

Javascript 访问控制允许标头返回两个值,javascript,ajax,api,Javascript,Ajax,Api,我在使用IE 11时提交API时遇到问题。我认为问题在于API在IE 11中返回了两个访问控制允许头。在Chrome和Firefox中,它只返回一个。此外,Access Control Allow Origin在IE 11中返回一个URL,但在Chrome和FF中返回一个*。如果您能帮助我解决这个问题,我将不胜感激,因为我花了两位数的时间试图解决这个问题,但没有成功。提交后发生的事情的逻辑是基于响应的,但在IE上会出现错误,因此逻辑永远不会执行(SEC7123:请求标头内容类型不在访问控制允许标

我在使用IE 11时提交API时遇到问题。我认为问题在于API在IE 11中返回了两个访问控制允许头。在Chrome和Firefox中,它只返回一个。此外,Access Control Allow Origin在IE 11中返回一个URL,但在Chrome和FF中返回一个*。如果您能帮助我解决这个问题,我将不胜感激,因为我花了两位数的时间试图解决这个问题,但没有成功。提交后发生的事情的逻辑是基于响应的,但在IE上会出现错误,因此逻辑永远不会执行(SEC7123:请求标头内容类型不在访问控制允许标头列表中。-SCRIPT7002:XMLHttpRequest:网络错误0x80070005,访问被拒绝。)

IE 11响应头: 访问控制允许标头承载\u令牌 访问控制允许标题授权、x日期、内容类型(如果不匹配) 访问控制允许来源-

Chrome和FF响应头(与IE不同的头): 访问控制允许标头-授权、x日期、etag、内容类型、范围(如果不匹配) 访问控制允许来源-*

用于提交的代码:

$(“#ajaxform”).submit(函数(e)
{
$.ajax({
网址:'https://this.that.com?firstname=test&lastname=test&email=test55@n2.com",,
数据类型:“json”,
键入:“post”,
contentType:'应用程序/json',
数据:“{}”,
xhrFields:{
证书:正确
},
标题:{
“授权”:“持票人XXXXXXXXXXXXXXXXXXXX”
},
成功:功能(数据、状态、jQxhr){
var thisResponse=jQxhr.responseText;
var trimrep=thisResponse.slice(2,-2);
thisParse=jQuery.parseJSON(trimrep);
var thisStatus=thisParse.status;
console.log(jQxhr);
//警报(此状态);
},
错误:函数(jqXhr、textStatus、errorshown){
log(“readyState:+jqXhr.readyState”);
log(“responseText:+jqXhr.responseText”);
控制台日志(“状态:+jqXhr.status”);
console.log(“文本状态:+textStatus”);
日志(jqXhr.getAllResponseHeaders);
}
});
e、 预防默认值();
});
感谢您花时间通读这篇文章

干杯~
这个话题听起来很有趣,但你的问题很具体。因此,我们需要更多信息,因为我们无法在我们的环境中测试此代码。如果您有任何错误信息,请将其附加到您的问题中。Thaks获取评论Teocci。错误列在问题第一段的末尾。仅供参考(SEC7123:请求标头内容类型不在访问控制允许标头列表中。-SCRIPT7002:XMLHttpRequest:网络错误0x80070005,访问被拒绝。)。
<script src="//ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
$("#ajaxform").submit(function(e)
{
        $.ajax({
            url: 'https://this.that.com?firstname=test&lastname=test&email=test55@n2.com',
            dataType: 'json',
            type: 'post',
            contentType: 'application/json',
            data: '{}',
            xhrFields: {
            withCredentials:  true
            },
            headers: {
               'Authorization': 'Bearer XXXXXXXXXXXXXXXXXXXXXXXX'
            },

            success: function( data, status, jQxhr ){
            var thisResponse = jQxhr.responseText;
            var trimResp = thisResponse.slice(2, -2);
            thisParse = jQuery.parseJSON(trimResp);
            var thisStatus = thisParse.status;
            console.log(jQxhr);
            //alert(thisStatus);
            },
            error: function( jqXhr, textStatus, errorThrown ){
console.log("readyState: " + jqXhr.readyState);
console.log("responseText: "+ jqXhr.responseText);
console.log("status: " + jqXhr.status);
console.log("text status: " + textStatus);
console.log(jqXhr.getAllResponseHeaders);
            }
});
e.preventDefault();
});