2011-09-15 15 views
7

Estoy trabajando en la conexión entre un servicio de web y de reposo. Logré hacer una llamada Ajax entre dominios, pero sigo teniendo un pequeño problema.imposible obtener la respuestaTexto al 400 error

Imposible recibir la respuesta Texto cuando ocurra un error de 400.

He verificado con wireshark, y estoy seguro de que el texto de respuesta fue enviado por REST. Pero cuando miro en Firebug i has esto:

http POST: los usuarios api.yutagz.com 400 Bad Request 133ms

Object {readyState = 0, el estado = 0, statusText = responseText "error" = ""}

El '400 Bad Request' está bien, pero necesito el responseText para decir al usuario lo que realmente sucede.

Aquí está mi código de llamada (trabajando en caso de éxito):

$.ajax({ 
type: "POST", 
url : "http://api.yutagz.com/users", 
data: dataString, 
dataType: 'json', 
success : function(data,data1,data2){ 
    alert("OK : "+data); 
    console.log(data2); 
}, 
error:function (xhr){ 
    alert(JSON.stringify(xhr)); 
    console.log(xhr); 
    switch (xhr.status) { 
     case 404: alert("404"); 
     case 400: alert("400"); 
      // Take action, referencing xhr.responseText as needed. 
    } 
}, 
complete : function (xhr){ 
    alert(JSON.stringify(xhr)); 
    console.log(xhr); 
    switch (xhr.status) { 
     case 404: alert("404"); 
     case 400: alert("400"); 
      // Take action, referencing xhr.responseText as needed. 
    } 
} 
}); 

Aquí está una prueba (que trabajan con Chrome, pero no con Firefox 3.6):

http://jsfiddle.net/RTvQQ/

Y aquí una billete de jQuery:

http://bugs.jquery.com/ticket/7868

+0

En Chrome, esto está funcionando bien para mí. Obtengo: "{" error ": {" type ":" badRequest "," message ":" errorUserEmailMissing "}}" –

+0

Está trabajando con Firefox 5, acabo de probarlo. Pero qué está pasando con 3.6 –

Respuesta

1

veo en Chrome 13:

Y en FF6:

Entonces sólo tiene que utilizar error.message e ir de allí.

Cuestiones relacionadas