2016-02-22 3 views
6

Wenn ich eine Löschanforderung an einen bestimmten Endpunkt senden, zum Beispiel mit httpie von Terminal wieNicht in der Lage eine DELETE-Anfrage zu senden mit holen api

http delete http://localhost:8181/admin/applications/uspecs

ich ein gültiges Verhalten bekommen, wie in { success: true } als Antwort Körper. Aber wenn ich

fetch (
    'http://localhost:8181/admin/applications/uspecs', 
    { 
    method: 'DELETE', 
    } 
) 
.then(res => doSomethingWithResponse()) 
.catch(err => cosole.error(err)) 

in JavaScript-Code zu tun, dann erhalte ich ein

Fetch API cannot load http://localhost:8181/admin/applications/uspecs. 
Method DELETE is not allowed by Access-Control-Allow-Methods in preflight response. 

Fehler auf der Konsole. Was vermisse ich? Ich erhalte eine gültige Methodenliste für die Optionenanfrage.

+0

Lesen Sie über Cross-Origin-Ressource teilen (CORS) - http://StackOverflow.com/Questions/25845203/understanding-Cors. –

+0

In der OPTIONS Antwort, bekomme ich 'Erlaube: LÖSCHEN, HEAD, GET, OPTIONS, POST' Liste. Das sollte es tun, oder? @OndrejSvejdar – nabn

+0

Sie können den Compiler fiddler verwenden, um die OPTIONS-Anforderung an den Endpunkt zu senden und die erhaltene Antwort zu posten. Auch der Beitrag ist verwirrend - stellen Sie sicher, dass die OPTIONS und DELETE-Anfrage an den gleichen Endpunkt gesendet werden (in Ihrem Post sind diese unterschiedlich). –

Antwort

5

Sie müssen den Header Access-Control-Allow-Methods senden, der die zulässigen Methoden enthält. Derzeit heißt Ihre Kopfzeile methods.

+0

Das war genau das! Vielen Dank! – nabn

+0

Wie soll ich diesen Header hinzufügen? –

+0

Das hängt von Ihrem serverseitigen Framework ab. Überprüfen Sie die Dokumentation. – ThiefMaster

Verwandte Themen