2017-11-21 3 views
1

Ist es möglich, den Fehlercode einer ausgefallenen Preflight-Anfrage zu bekommen, so dass ich eine aussagekräftige Fehlermeldung drucken kann? (Oder gibt es eine Gewohnheit, einen statischen Fehler für alle fehlgeschlagen Preflight-Anfragen des Code, egal zu drucken?)Wie der Statuscode eines CORS http bekommt Preflight requets fehlgeschlagen

Anschaulich wird der Statuscode 401 auf die Konsole ausgegeben, aber die Fehlerbehandlung oder eine .catch() Anweisung nur erhalten Das Fehlerobjekt wurde ausgelöst.

Wenn ich den Header, der das Preflight auslöst, entferne, bekomme ich die Antwort selbst und kann den Statuscode extrahieren.

// Beachten Sie auch, dass der zurückgegebene Code 401 im ersten Screenshot falsch ist. Aber das ist another question ..

Antwort

1

Nein, es ist nicht.

Wenn der Statuscode der Preflight-Antwort ist nicht mehr als 200, dann ist die Same Origin Policy werden alle Informationen über die Antwort von verhindern, es extrahiert wird.

Ich habe gerade einen Web-API einrichten immer aus diesem Grunde für OPTIONS Anfragen 200 OK-Status zurückzukehren.

1

Leider nicht. Alle fetch gibt eine TypeError mit der Nachricht "Failed to fetch" zurück.

> fetch('https://stackexchange.com/404').then(x => console.info(x), error => console.error(error)) 
× TypeError: Failed to fetch 

Ich habe versucht, manuell eine andere Preflight-Anfrage zu senden und den Antwortcode davon zu nehmen.

Aber das löst nur ein weiteres Preflight und lässt mich immer noch nicht bei der eigentlichen fehlgeschlagenen Anfrage.

+0

Haha LOL, so bitten um 'OPTIONS' andere' OPTIONS' Preflight auslösen ... – Qwerty

Verwandte Themen