我正在尝试在我的本地主机上调用一个Web服务,它需要一个参数pkId并返回结果。 WebService运行完美,但是当我从JQuery调用时,它不会返回任何数据。我已经尝试了几乎所有的组合来设置Web服务(数据)部分的参数,但无法得到任何结果,真正的痛苦是我没有得到任何错误。
$.ajax({
type: "POST",
url: "http://localhost/WSTest/Service.asmx/AuthorGetById",
data: "{pkId :'" + pkId + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
return msg.d;
}
});
答案 0 :(得分:1)
成功被调用为来自AJAX的回调。这意味着它的结果返回到AJAX jQuery函数,而不是从函数进行AJAX调用返回。您需要将result.d off传递给另一个使用它的函数。您是否在成功函数中放置了断点以查看结果的值?
有关使用AJAX调用使用Web服务的信息,请查看:
答案 1 :(得分:0)
这不是答案,而是帮助您到达那里的方法
<小时/> 即使你有错误也不会得到它,因为你根本没有处理错误 同样值得一提的是,自从ASP.NET 3.5以上功能以来,您的msg是否具有'd' 另外,不要返回msg.d尝试提醒它。
样本将是
$.ajax({
type: "POST",
url: "http://localhost/WSTest/Service.asmx/AuthorGetById",
data: "{pkId :'" + pkId + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
var datum = msg.hasOwnProperty("d")? msg.d : msg;
alert("Success" + datum);
}
error:function (xhr, ajaxOptions, thrownError){
alert("Error");
}
});
答案 2 :(得分:0)
我找到了答案。 Actullay我正确地传递参数并注意到firebug中的响应但是因为...我的web服务方法返回void,因此无法捕获它。我把它改成了返回字符串并且它可以正常工作。