2011-10-06 4 views
2

J'ai un petit problème, avec mon appel webservice. Je l'ai débogué, et le webservice est appelé, avec la valeur correcte et il renvoie également la valeur correcte. Cependant, mon alerte (dans la fonction terminée) dit: 'non défini'. Qu'est-ce que je fais de mal? Voilà ma fonction:jQuery Ajax appel à webservice, renvoie undefined

function GetServiceValue() { 
var Parameter = "{contextKey: '" + $('#<%= ProjectNumText.ClientID %>').val() + "'}"; 
alert('Para: ' + Parameter); 
$.ajax({ 
    type: 'Post', 
    url: 'DynamicPopulateService.asmx/GetProjectName', 
    data: Parameter, 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function(msg) { 
     AjaxSucceeded(msg); 
     }, 
    error: AjaxFailed 
});} 

Et voici la fonction terminée:

function AjaxSucceeded(data) 
{ 
alert(data.responseText); 
} 

Répondre

3

On dirait que vous utilisez ASP.NET. Les services de script ASP.NET renvoient la réponse JSON sous un objet wrapper appelé simplement "d". Essayez ceci:

function AjaxSucceeded(data) 
{ 
    alert(data.d.responseText); 
} 
+1

Excellent, ça a marché! Sauf, j'ai supprimé responseText. So alert (data.d) – Nicolai

+0

Toutes les propriétés de l'objet retourné par le serice web seront disponibles sous l'objet wrapper data.d. Si l'objet renvoyé par votre service Web n'a pas de propriété responseText, Data.d ne le sera pas non plus. Il est très facile de voir ce qui se passe si vous utilisez l'onglet JSON dans firebug. – njr101

Questions connexes