2010-01-21 12 views
21

En caso de fallo, el código es algo como:

error: function(msg) 

dónde viene el msg viene?

EDIT:

estoy usando esta función ($ Ajax) para llamar a un servicio web. Entonces, si quien haya votado esto podría explicarme de dónde vendría eso, ¡sería genial! ¿Lo configuro en el servicio web? ¿Si es así, cómo? Por favor, no copie y pegue las definiciones.

+2

qué es esto siendo downvoted? – Jason

+0

el parámetro msg es el objeto XMLHttpRequest jquery utilizado para realizar la solicitud. No importa si se llama * msg * o * xhr * o lo que sea, ese es el primer (o único) parámetro. En el ejemplo donde lo obtuviste, deberían haber usado * xhr * o algo además de * msg *, lo cual es confuso. Te sugiero que lo cambies. Y sí, no sé por qué los votos a favor. Es una buena pregunta. Voy a igualar un voto abajo aquí. . . –

Respuesta

2

THe El mensaje es un retorno de la función real del lado del servidor que está consultando en su llamada ajax.

De esta forma puede obtener el error o cualquier otra información sobre si el código del lado del servidor hizo o no lo que se suponía que debía hacer.

Di si devuelve una cadena "éxito"

msg.val() será igual a "éxito"

esperanza de que ayuda a

0

la variable ajax de retorno (en este caso 'msg') es la salida devuelta de la llamada AJAX - en el caso de un error ajax, esto probablemente sería un error del servidor.

20

De la documentación de jQuery:

error(XMLHttpRequest, textStatus, errorThrown) Function

Una función que se llamará si la petición falla. La función se pasa tres argumentos:
- El objeto XMLHttpRequest,
- una cadena que describe el tipo de error que ocurrió, y
- un objeto de excepción opcional, si se produjo una.
Los valores posibles para el segundo argumento (además de nulo) son "timeout", "error", "notmodified" y "parsererror". Este es un Evento Ajax.

Cuando indica solo un parámetro, será el xmlHttpRequestObject. Puede obtener buena información de eso. Lamentablemente, la mayoría de la documentación no tiene configurado correctamente. Una buena plantilla por defecto es:

error:function (xhRequest, errorText, thrownError) 

buena información que puede obtener de xhRequest son:

  • .status: 404: "no encontrado", 500: "error de servidor". Esto a veces puede ser una gran ayuda.
  • .responseText es información del servidor, a menudo inútil en el caso de un error, pero a veces puede ser útil.

El segundo valor, una cadena, a veces es útil. Ah, supongo que los valores posibles se mencionan en la documentación.

El tercer parámetro, cada vez que lo comprobé, siempre ha sido indefinido.No creo que sea alguna vez útil.

+0

Tu etiqueta hash no funciona (desafortunadamente) –

0

En realidad, la forma correcta es:

error: function(req, status, error) { 
} 

De la API de jQuery:

una función que será llamada si la petición falla. La función se pasa tres argumentos: El objeto XMLHttpRequest, una cadena que describe el tipo de error que ocurrió y una excepción opcional objeto, si se produjo uno. Los valores posibles para el segundo argumento (además de nulo) son "timeout", "error", "notmodified" y "parsererror". Este es un evento de Ajax.

7

creo que la tercera parámetro errorThrown en la función de devolución de llamada de error

error(XMLHttpRequest, textStatus, errorThrown) 

es exactamente para enviar el mensaje de texto de error del servidor.

lo tanto, si en un servidor que establezca:

Response.Status = 403; 
Response.StatusDescription = "Password is not correct"; 

en un cliente que se obtiene:

textStatus => "error", 
errorThrown => "Password is not correct" 

parte del servidor de Asp.net MVC será:

return new HttpStatusCodeResult(403, "Password is not correct"); 
Cuestiones relacionadas