2009-09-23 6 views
0

J'appelle un service web en utilisant la méthode ajax de jquery et il semble fonctionner depuis que la fonction 'succès' est exécutée. Je dois produire les résultats bruts sont revenus, mais quand j'utilise des alertes, la messagebox montre la sortie comme:Résultats de sortie d'un appel jquery ajax

event='' 
XMLHttpRequest=success 
ajaxOptions=undefined 

Qu'est-ce que je fais mal et comment puis-je produire les résultats bruts?

$.ajax({ 
url: "http://mysite/service/lists.asmx", 
type: "POST", 
dataType: "xml", 
data: soapEnv, 
contentType: "text/xml; charset=utf-8", 
success: function(event, XMLHttpRequest, ajaxOptions){ 
alert("event= "+event);alert("XMLHttpRequest= "+XMLHttpRequest); 
alert("ajaxOptions= "+ajaxOptions);}, 
error: function(xhr) { 
alert('Error! Status = ' + xhr.status);} 
}); 

Répondre

1

Si vous utilisez firefox avec firebug, vous pouvez regarder sous l'onglet NET.

Cliquez sur NET pour l'effacer. Faites votre appel AJAX et cliquez sur le + pour développer l'élément. Regardez sous l'onglet Response pour voir ce qui est revenu.

Note latérale: vous pouvez également consulter la demande.

+0

Merci! J'ai pu utiliser firebug pour vérifier le format de réponse – shehan

+0

Ah, vous voulez juste le voir ... Je pensais que vous vouliez le sortir pour un usage autre que l'inspection manuelle. Firebug est la meilleure option pour cela. –

4

Le premier problème est que vos arguments sont mauvais pour le rappel success.

Les args sont en fait comme suit:

function (data, textStatus) { 
    this; // the options for this ajax request 
} 

Donc, dans votre code, event est en fait les données (jQuery aura converti responseXML pour vous et coincé dans cette variable), et votre XMLHttpRequest est en fait le textStatus.

Vous voulez faire quelque chose comme ça

function(data, status) { 
    alert('response: ' + data); 
} 

Si vous souhaitez que l'objet XMLHttpRequest directement:

var xhr = $.ajax({ /* blah */ }); 

Ensuite, vous pouvez regarder xhr.responseText lorsque l'appel est terminé à voir le résultat brut. Il est probablement préférable d'utiliser le paramètre data de jQuery si possible.

Pour plus d'informations le jQuery ajax docs.

Questions connexes