jQueryAjax调用webservice,返回未定义的

jQueryAjax调用webservice,返回未定义的,jquery,asp.net,ajax,web-services,Jquery,Asp.net,Ajax,Web Services,我的webservice呼叫有一个小问题。 我已经对它进行了调试,使用正确的值调用了webservice,它还返回了正确的值。 但是,我的警报(在已完成的函数中)显示:“未定义”。 我做错了什么? 以下是我的功能: function GetServiceValue() { var Parameter = "{contextKey: '" + $('#<%= ProjectNumText.ClientID %>').val() + "'}"; alert('Para: ' + Para

我的webservice呼叫有一个小问题。 我已经对它进行了调试,使用正确的值调用了webservice,它还返回了正确的值。 但是,我的警报(在已完成的函数中)显示:“未定义”。 我做错了什么? 以下是我的功能:

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);
}

看起来您正在使用ASP.NET。ASP.NET脚本服务在名为“d”的包装器对象下返回JSON响应。试试这个:

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

好极了,成功了!除了,我删除了responseText。因此,web服务返回的对象的所有属性都可以在data.d包装器对象下使用。如果从web服务返回的对象没有responseText属性,那么data.d也没有。如果在firebug中使用JSON选项卡,很容易看到发生了什么。