Access-Control-Allow-Headers返回两个值

时间:2017-04-18 23:43:14

标签: javascript ajax api

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

IE 11响应标题: Access-Control-Allow-Headers bearer_token Access-Control-Allow-Headers授权,x-date,Content-Type,if-none-match Access-Control-Allow-Origin - https://this.that.com

Chrome和FF响应标头(与IE不同的标题): Access-Control-Allow-Headers - 授权,x-date,etag,内容类型,范围,if-none-match Access-Control-Allow-Origin - *

用于提交的代码:

<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();
});

感谢您花时间阅读此内容。

干杯〜 ç

0 个答案:

没有答案