创建了一个非常简单的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返回字符串?
答案 0 :(得分: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);
}