2011-03-20 19 views
5

Imagínese corro esto:¿cómo obtengo el texto de respuesta de ajax/jquery?

 $.ajax({ 
     type: 'POST', 
     url: '/ajax/watch.php', 
     data: {'watch':'aukcia', 'id':aukciaID}, 
     complete: function(responseText){ 
      alert(responseText); 
     } 
    }); 

Dentro /ajax/watch.php, digamos que tengo esto:

echo 'this is what I want'; 

Y la alerta (responseText) devuelve:

[object Object] 

En lugar de la cadena de texto que necesito. ¿Alguna ayuda, por favor?

+0

asegurarse de que está volviendo de texto sin formato de tu archivo PHP. – JohnP

+0

100% seguro de que soy:/ –

Respuesta

12

Parece que de alguna manera su jQuery devuelve el objeto XMLHttpRequest, en lugar de su respuesta.

Si ese es el caso, usted debe preguntar por su propiedad responseText, así:

$.ajax({ 
    type: 'POST', 
    url: '/ajax/watch.php', 
    data: {'watch':'aukcia', 'id':aukciaID}, 
    complete: function(r){ 
     alert(r.responseText); 
    } 
}); 

Sin embargo, si eso no funciona, es posible que en realidad recibir una respuesta JSON, y el [object Object] estás seeing podría ser la representación de su navegador de su respuesta JSON.

Debería poder inspeccionar su contenido navegando alrededor de las propiedades del objeto. Sin embargo, si lo desea, también se puede decir que no jQuery para analizar su respuesta JSON, incluyendo dataType: 'text' en su llamada:

$.ajax({ 
    type: 'POST', 
    url: '/ajax/watch.php', 
    data: {'watch':'aukcia', 'id':aukciaID}, 
    dataType: 'text', 
    complete: function(data){ 
     alert(data); 
    } 
}); 

Para obtener más información, consulte: http://api.jquery.com/jQuery.ajax/

+0

gracias, eso funciona! Entonces, ¿qué es "r" en este caso? una abreviatura de "respuesta" o algo así? (solo curiosidad) –

+1

"r" es solo un objeto javascript. Puedes ponerle el nombre que quieras ... – pokiman

+0

gracias, al menos una de estas dos obras (la última). el primero no. –

Cuestiones relacionadas