Die domainübergreifende Abfrage jQuery $ .ajax schlägt für PUT fehl (die Methode PUT ist von Access-Control-Allow-Methoden nicht erlaubt.)

8

Ich mache domänenübergreifende Anfragen über jQuerys $.ajax , um auf eine RESTful PHP API zuzugreifen.
Dazu habe ich in PHP folgende Header gesetzt:

%Vor%

Die Verwendung der Typen GET und POST funktioniert ohne Probleme. Aber wenn ich einen PUT ajax Aufruf mache, scheitert Firefox komplett und zeigt OPTIONS api.php im Netzwerk Reiter von Firebug.
In Chrome passiert das gleiche zuerst ( OPTION -Anforderung schlägt mit der Nachricht Method PUT is not allowed by Access-Control-Allow-Methods. fehl), Chrome folgt jedoch der tatsächlichen PUT -Anforderung das funktioniert dann tatsächlich.

Was ist der Grund für dieses Verhalten?

    
Horen 17.07.2013, 14:15
quelle

1 Antwort

17

Anscheinend sendet der Browser zuerst eine Anfrage OPTIONS , um herauszufinden, ob PUT (oder DELETE ) Anfragen erlaubt sind.
Da ich die OPTIONS -Methode in Access-Control-Allow-Methods nicht erlaubt hatte, ist sie fehlgeschlagen, ebenso wie die PUT -Anforderung nach Firefox.
Das Hinzufügen von OPTIONS zu Access-Control-Allow-Methods hat das Problem gelöst:

%Vor%     
Horen 17.07.2013, 14:15
quelle

Tags und Links