2011-10-06 81 views
2

我有一個小問題,與我的web服務調用。 我已經調試過它,並調用了正確的值,它也返回正確的值。 但是,我的警報(在完成的功能)說:'未定義'。 我在做什麼錯? 這裏是我的功能:jQuery的Ajax調用web服務,返回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 
});} 

這裏是完成功能:

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

回答

3

它看起來像你使用ASP.NET。 ASP.NET腳本服務會在名爲「d」的包裝對象下返回JSON響應。試試這個:

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

非常好,它的工作!除了,我刪除了responseText。因此警報(data.d) – Nicolai

+0

Web服務返回的對象的所有屬性都將在data.d包裝器對象下提供。如果從Web服務返回的對象沒有responseText屬性,那麼data.d.如果您在Firebug中使用JSON選項卡,很容易看到發生了什麼。 – njr101