Angular POST-Kreuzursprungsfehler während POSTMAN funktioniert

8

Ich versuche, von meinem eckigen Login-Dienst zu senden:

%Vor%

Und ich bekomme diesen Fehler:

%Vor%

Ich habe diese Header probiert:

%Vor%

Und auch diese:

%Vor%

Das Interessante ist, dass der POSTMAN funktioniert. Was soll ich tun?

Danke.

    
user3712353 23.12.2015, 15:51
quelle

3 Antworten

5

Ihre Anfrage enthält nicht einfache Header Content-type und signature , die im Header Access-Control-Allow-Headers der Antwort enthalten sein müssen.

( Content-type ist manchmal ein einfacher Header, aber nur für bestimmte Werte. application/json ist keiner dieser Werte und es bewirkt, dass Content-type nicht einfach wird.)

Fügen Sie Content-type zu Access-Control-Allow-Headers in der Preflight-Antwort Ihres Servers hinzu.

POSTMAN ist nicht an die Richtlinie für denselben Ursprung gebunden, daher ist keine CORS-Unterstützung vom Server erforderlich.

    
apsillers 23.12.2015 15:55
quelle
2

Setzt Ihr Browser vor dem POSTING eine OPTIONS-Anfrage? Überprüfen Sie die Registerkarte NET Ich hatte Probleme vorher, wo eine OPTIONS-Anfrage vom Browser oder Angular gemacht wurde (weiß nicht welche) und der Server hatte nicht ...

"Access-Control-Allow-Methoden": "GET, POST", "PUT", "DELETE", "OPTIONEN";

    
danday74 23.12.2015 16:20
quelle
0

Nicht sicher, ob Sie bereits die Informationen haben, die Sie benötigen. Aber in meinem lokalen Web-Server - wenn ich eine HTTP-Anfrage mit Postman hier ist, was fügt es in den Header:

Kopfzeilen:    {host: 'localhost',      Verbindung: 'keep-alive',      Pragma: 'No-Cache',      'Cache-Kontrolle': 'No-Cache',      'Benutzeragent': 'Mozilla / 5.0 (Windows NT 10.0; WOW64) AppleWebKit / 537.36 (KHTML, wie Gecko) Chrome / 47.0.2526.106 Safari / 537.36',      Akzeptieren: ' / ',      Referer: ' Ссылка ',      'accept-encoding': 'gzip, deflate, sdch',      'Akzeptieren-Sprache': 'en-US, en; q = 0.8'},

Und hier ist, was ich in den rawHeaders sehe:    ["Gastgeber",      'localhost',      'Verbindung',      'bleib am Leben',      "Pragma",      'Kein Cache',      'Cache-Kontrolle',      'Kein Cache',      'User-Agent',      'Mozilla / 5.0 (Windows NT 10.0; WOW64) AppleWebKit / 537.36 (KHTML, wie Gecko) Chrome / 47.0.2526.106 Safari / 537.36',      'Akzeptieren',      " / ",      "Schiedsrichter",      " Ссылка ",      'Accept-Encoding',      'gzip, entlüften, sdch',      'Accept-Sprache',      'en-US, en; q = 0.8'],

Vielleicht müssen Sie Ihren Client nur fälschen, um ein anerkannter Browser-Client zu sein.

    
Tim 23.12.2015 17:22
quelle