2012-06-29 10 views
5

Encontré el origen de mi problema para SuperAgent (http://visionmedia.github.com/superagent/) en Firefox. No estoy seguro si SuperAgent lo está haciendo en su llamada AJAX o si FireFox lo está activando.¿Cómo evito que SuperAgent AJAX llame a OPTIONS?

Básicamente, cada vez que realizo una llamada AJAX, se dispara un método OPTIONS en la URL antes de la llamada AJAX real. Bastante molesto ya que el servidor actualmente no es compatible con OPTIONS. ¿Cómo puedo hacer una llamada sin que se estropee y vuelva a codificar el servidor?

Gracias

Respuesta

5

Ok descubrió algunos detalles más. Afortunadamente las pruebas en Safari me dieron más información sobre lo que realmente estaba sucediendo y apliqué mi conocimiento aquí.

Parece ser el estándar que los navegadores llaman a un método OPTIONS antes de realizar una llamada AJAX real. Parece un poco autoritario.

Así que para evitarlo simplemente agregué un catch-all en mi servidor proxy inverso para manejar cada llamada OPTIONS. Se puede ver la pregunta a continuación para el código:

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

Y si quieres leer más sobre qué navegadores están haciendo esto, ver aquí:

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

OPTIONS es de la CORS estándar.

0

Deshabilitar web-secuty en phantomjs también ayudó a resolver este problema (--web-security=no). Porque no tenía acceso al servidor API para hacer cambios para el método OPTION.

Cuestiones relacionadas