2012-06-29 3 views
5

Ich habe die Quelle meines Problems für SuperAgent (http://visionmedia.github.com/superagent/) in Firefox gefunden. Nicht sicher, ob SuperAgent es in seinem AJAX-Aufruf ausführt oder ob FireFox es auslöst.Wie verhindere ich, dass SuperAgent AJAX OPTIONS aufruft?

Grundsätzlich jedes Mal, wenn ich einen AJAX-Aufruf mache, wird eine OPTIONS-Methode auf die URL vor dem eigentlichen AJAX-Aufruf ausgelöst. Ziemlich nervig, da der Server derzeit OPTIONS nicht unterstützt. Wie kann ich einen Anruf tätigen, ohne dass der Server beschissen und neu codiert wird?

Danke

Antwort

5

Ok, fand mehr Details heraus. Glücklicherweise gab mir Safari auf Safari mehr Einblick in das, was tatsächlich passierte, und ich habe mein Wissen hier angewendet.

Es scheint der Standard zu sein, dass Browser eine OPTIONS Methode aufrufen, bevor sie einen tatsächlichen AJAX-Anruf tätigen. Scheint etwas aufdringlich.

Um es zu umgehen, habe ich einfach einen Catch-All in meinem Reverse-Proxy-Server hinzugefügt, um jeden Anruf OPTIONS zu behandeln. Sie können die unten stehende Frage für den Code sehen:

Play! 2.0 easy fix to OPTIONS response for router catch-all?

Und wenn Sie mehr auf lesen wollen, warum Browser dies tun, finden Sie hier:

Why am I getting an OPTIONS request instead of a GET request?

OPTIONS von der ist CORS-Standard.

0

Die Deaktivierung der Web-Secuty in phantomjs half ebenfalls, dieses Problem zu lösen (--web-security=no). Weil ich keinen Zugriff auf den API-Server hatte, um Änderungen für die OPTION-Methode vorzunehmen.