1

我试图在我的本地主机上调用一个 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;
        }
    });
4

3 回答 3

1

成功作为来自 AJAX 的回调调用。这意味着它的结果被返回给 AJAX jQuery 函数,而不是作为从你的函数进行 AJAX 调用的返回。您需要将 result.d 传递给另一个使用它的函数。您是否在成功函数中放置了一个断点以查看结果值是多少?

有关使用 AJAX 调用使用 Web 服务的信息,请查看:

使用 jquery 消费 aspnet json web services/

于 2011-02-19T18:59:14.643 回答
0

我找到了答案。Actullay 我正确地传递了参数并注意到了萤火虫中的响应,但无法成功捕获它,因为...我的 Web 服务方法返回 void。我将其更改为返回字符串,并且它工作正常。

于 2011-02-21T17:01:01.560 回答
0

这不是答案,而是帮助您到达那里的意思。


即使您有错误,您也不会得到它,因为您根本没有处理错误。
还值得检查一下您的味精是否具有 'd',因为它是 ASP.NET 3.5+ 功能。
另外,不要返回 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");
    }
});
于 2011-02-19T18:49:43.087 回答