请求标头值不发送? CORS - jQuery Ajax

时间:2017-05-22 13:21:10

标签: javascript jquery ajax

我试图从一个应用程序向另一个应用程序发出请求。所以我创建了一些我的应用程序所需的头文件,并填入了Ajax请求。这是我的代码:

$.ajax({
    method: 'GET',
    url: 'http://my-domain.com/apps/filters/get-filters',
    beforeSend: function(request){
        request.setRequestHeader("X-Webshop-Domain", window.location.host);
        request.setRequestHeader("X-Language", $('html').attr('lang'));
        request.setRequestHeader("X-Request-Protocol", window.location.protocol);
        request.setRequestHeader("X-Api-Version", '2');
    },
    headers: {
        "X-Webshop-Domain": window.location.host,
        "X-Language": $('html').attr('lang'),
        "X-Request-Protocol": window.location.protocol,
        "X-Api-Version": '2',
    },
    data: {}, success: function ( response )
    {

    }
});

现在,当我加载页面时,会调用此方法,但不会给出响应。它给了我#34;标题不允许"问题。但是,当我检查我的网络选项卡(开发人员工具Chrome)时,我看到了我的请求,我看到了一些标题,但没有一个。有没有人知道这是可能的或者我做错了什么?

1 个答案:

答案 0 :(得分:1)

如果是CORS(跨域请求),则只允许使用基本标头。您需要将要发送的标头添加到服务器的响应标头中:

Access-Control-Allow-Headers: X-Webshop-Domain, ...

以下是您可能会觉得有用的相关问题:Ajax Request header field Key is not allowed by Access-Control-Allow-Headers