0

创建了一个非常简单的返回字符串的 WCF 函数。

public interface IDataService
{
    [OperationContract]
    [WebInvoke( Method = "POST", BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json )]
    string DoWork( );
}

[AspNetCompatibilityRequirements( RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed )]
public class DataService : IDataService
{
    public string DoWork( )
    {
        return "DONE";
    }
}

我使用 jQuery.ajax 调用它:

$.ajax({
    type: "POST",
    url: service + "/DoWork",
    data: "{}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",

    success: function (data, textStatus, jqXHR) {
        alert(textStatus);       --> success
        alert(data);             --> object
        alert(data.d);           --> undefined
    },

    error: function (jqXHR, textStatus, errorThrown) {
        alert(textStatus + " : " + errorThrown);
    }
});

函数成功返回。

textStatus显示成功

data显示对象

data.d未定义的。

如何获取 DoWork 返回的字符串?

4

1 回答 1

0

按照建议使用console.log(data),显示如下结果:

Object {DoWorkResult: "DONE"}

然后可以通过 访问返回字符串data.DoWorkResult

success: function (data, textStatus, jqXHR) {
   console.log(data);
   alert(data.DoWorkResult);
},

对于员工列表等数据结构,可以像数组一样访问 JSON 数据(假设您已将服务配置为返回 JSON):

for(var i=0; i<data.GetEmployees.length; i++) {   
   console.log(data.GetEmployees[i].Name + " - " + data.GetEmployees[i].Position); 
}
于 2013-05-30T20:18:52.733 回答