2012-06-29 13 views
5

Ho trovato la fonte del mio problema per SuperAgent (http://visionmedia.github.com/superagent/) su Firefox. Non sono sicuro se SuperAgent lo sta eseguendo nella sua chiamata AJAX o se FireFox lo sta attivando.Come si impedisce a SuperAgent AJAX di chiamare OPTIONS?

In sostanza, ogni volta che effettuo una chiamata AJAX viene attivato un metodo OPTIONS sull'URL prima della chiamata AJAX effettiva. Abbastanza fastidioso dal momento che il server attualmente non supporta OPZIONI. Come posso effettuare una chiamata senza andare a cazzare e ricodificare il server?

Grazie

risposta

5

Ok ho trovato qualche altro dettaglio. Fortunatamente i test su Safari mi hanno dato più informazioni su ciò che stava realmente accadendo e ho applicato le mie conoscenze qui.

Sembra essere lo standard che i browser chiamano un metodo OPTIONS prima di effettuare una chiamata AJAX effettiva. Sembra un po 'prepotente.

Quindi, per aggirare il problema, ho semplicemente aggiunto un catch-all nel mio server proxy inverso per gestire ogni chiamata OPTIONS. Si può vedere la questione sotto il codice:

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

E se volete leggere su più sul perché i browser stanno facendo questo, vedere qui:

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

OPTIONS è dal Standard CORS.

0

La disattivazione di Web-Secuty in phantomjs ha contribuito a risolvere questo problema (--web-security=no). Perché non ho avuto accesso al server API per apportare modifiche al metodo OPTION.

Problemi correlati