2013-08-05 15 views
18

ho una chiamata molto semplice ajax per avvisare i dati che è stato segnalato dal serverspettacoli dati jquery ajax [object Object]

$.ajax({ 
     type: "POST", 
     url: "/someform/act", //edit utl to url 
     data: { changed: JSON.stringify(plainData) }, //edit to include 
     success: function(data) { 
      alert(data);    //data not $data 
     }, 
     error: function() { 
      //error condition code 
     } 
}); 

Secondo il docs sul sito di jQuery per quanto riguarda campo dati sul callback successo , dice che i dati restituiti sono i dati dal server. Tuttavia, per qualche strana ragione, quando ho a segnalare a $data, ottengo [object Object]

mi aspettavo di vedere qualcosa di simile, dal momento che questo è ciò che il server potrebbe inviare indietro

<status>0</status> 

EDIT:

dati sono anche passato come il POST

+0

Cosa ottieni se usi 'alert (dati);'? –

+0

Il server ha restituito XML, jQuery ha poi analizzato detto xml. Quello che hai è un documento xml. Prova 'console.log (dati)' –

+0

Ottiene 'successo' quando allarme i dati – tawheed

risposta

19

alert() stampa la rappresentazione di stringa degli argomenti - da qui se si passa un oggetto, si otterrà [object Object].

Per ispezionare i dati, utilizzare console.log(data) meglio.

28

È necessario utilizzare JSON.stringify(data) nel alert per ottenere qualsiasi cosa leggibile.

Inoltre, $data è un nome di variabile completamente diverso da data.

+0

Non proprio, dipende da cosa sia 'data'. Forse è già una stringa. –

+0

Ricevo 'successo' come risposta. Speravo di riavere l'xml dal server – tawheed

4

Se il server invia un JSON, è necessario inserire dataType: 'json' nella chiamata ajax. Sii consapevole che c'è qualche errore nella tua chiamata ajax.

 $.ajax({ 
       type: "POST", 
       url: "/someform/act", // NOT 'UTL', 
       data: { 
        key: value, 
        key2: value2 
       }, 
       // or data: plaindata, // If 'plaindata' is an object. 
       dataType: 'json', 
       success: function(data) { 
        console.log(data); // As moonwave99 said 
       }, 
       error: function() { 
        //error condition code 
       } 
     }); 

EDIT

Quando si inviano dati, si deve inviare un oggetto. jQuery gestirà l'array per sned sul server. Quindi, se i dati pianura è un oggetto, dovrebbe essere come questo

   data: plainData, 
+0

grazie 'utl' era un ovvio errore :-) – tawheed

Problemi correlati