2017-08-21 2 views
0

Ich versuche, eine POST-Anfrage an meine REST-API zu machen. Hier ist der Code-Schnipsel (mit AngularJS):HTTP Preflight (OPTIONS) Anfrage schlägt in IE nur

 $http({ 
      method: 'POST', 
      url: url, 
      data: reqBody, 
      headers: { 
       'content-type': 'application/json' 
      } 
     }) 
     .then(function (response) {...}) 
     .catch(function (error) {...}); 

Nach this article wegen des HTTP-Header

'content-type': 'application/json'

Browser kommt zu dem Schluss, dass es eine "nicht einfache" HTTP-Anfrage machen muss, die einen Handshake mit einem Server erfordert (die HTTP-Optionsanfrage wird vor der eigentlichen HTTP-Anfrage gesendet).

Chrome die Anfrage wie ein Zauber behandelt, aber IE (11 in meinem Fall) nicht mit den folgenden Meldungen:

enter image description here

Die Sache ist, HTTP-Optionen Antwort enthält alles, was der Browser muss Fahren Sie mit der eigentlichen HTTP-Anfrage fort.

+0

Sind die Header, die in den POST _and_ OPTIONS-Anforderungen vorhanden sind? –

+0

@SergiuParaschiv Ich kann wirklich nicht sagen, ob die Header in IE POST Anfrage, weil es nie dort ankommen. Aber ich habe die Chrome-POST-Header überprüft und sie sind vorhanden ([POST-Screenshot in Chrome] (https://ibb.co/deJBK5)). – altgov3en

Antwort

0

Ich fand den Grund für all das Chaos.

Der API-Dienst und die Website befanden sich auf derselben Domäne, aber auf verschiedenen Ports. Um genau zu sein, wurde die API-Service befindet sich auf:

myDomain.com/apiService

und die Website wurde sich auf:

myDomain.com:44443/webSite

So, wenn der Web-Browser den Anruf von initialisierte:

myDomain.com:44443/webSite/page1

zu:

myDomain.com/apiService/service1

Internet Explorer den Anruf wegen der CORS versperrte. Aus irgendeinem Grund war Chrome in dieser Angelegenheit weniger streng, da es erfolgreich war, den Aufruf an die API zu tätigen.

Um es in Internet Explorer funktioniert, zog ich die Website auf den gleichen Port wie die API:

myDomain.com/apiService

myDomain.com/webSite

Verwandte Themen