HTTP -Optionsmethode mit JavaScript -Anforderung
-
27-10-2019 - |
Frage
Ich benutze das Modell von Backbone.js. Wenn ich das Modell speichere, sendet es die HTTP-Optionsmethode an serverseitig auf Firefox, sendet jedoch die HTTP-Postmethode mit Safari.
Ich weiß, dass es kein Problem mit Backbone.js ist, es geht um CORS. Ich werde nur prüfen, ob die Methode, erhalten, posten, setzen und auf der Server-Seite löschen. Ich werde keinen Job bei der HTTP-Optionsmethode machen.
Meine angeforderte URL ist meine API: api.foo.com und API angefordert von: bar.com
Wie kann ich also in allen Browsern steuern, um meine api.foo.com mit HTTP Post NOT -Optionen anzufordern? Und wie kann ich den Inhalt von API.FOO.com mit allen Anfragen von anderen Domänen teilen?
Hinweis: Ich habe bereits die Header von Response von der Server-Seite zu: Zugriffskontroll-Owl-Origin: * geändert: *
Lösung
Die Optionsanfrage ist tatsächlich die sogenannte Preflight -Anfrage der CORS -Spezifikation. Diese Anforderung vor dem Flug wird von Webbrowsern verwendet, um zu überprüfen, unter welchen Bedingungen der Server eine Anfrage aus dem jeweiligen Ursprung annehmen würde. Wenn die Antwort auf die Anfrage vor dem Flug erfüllt war, sendet der Browser die tatsächliche Anfrage.
Um diese Spezifikation einzuhalten, benötigen Sie Ihren Server, um die zu reproduzieren Schritte der Verarbeitung von Vorfilsanforderungen.