2017-05-22 1 views
1

Ich versuche, eine Anfrage von einer Anwendung zu einer anderen zu machen. Also habe ich einige Header erstellt, die von meiner Anwendung benötigt werden und sie für die Ajax-Anfrage ausgefüllt haben. Hier ist mein Code:Anfrage Header-Werte nicht senden? CORS - jQuery 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) 
    { 

    } 
}); 

Jetzt, wenn ich eine Seite laden, wird diese Methode aufgerufen, aber keine Antwort gegeben. Es gibt mir das Problem "Header nicht erlaubt". Aber wenn ich meine Netzwerk-Registerkarte einchecke (Entwickler-Tools Chrome) sehe ich meine Anfrage, sehe ich einige Header aber keine von denen. Hat jemand eine Idee, wie das möglich ist oder was mache ich falsch?

Antwort

1

Im Fall von CORS (domänenübergreifende Anfragen) sind nur einfache Header erlaubt. Sie werden die Header hinzufügen, müssen Sie möchten die Server-Antwort-Header senden:

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

Hier ist eine ähnliche Frage kann für Sie nützlich: Ajax Request header field Key is not allowed by Access-Control-Allow-Headers

+0

Danke, Sie haben mir sehr geholfen heraus! : D –