使用JQuery调用参数化的asmx Web服务

时间:2011-02-19 18:28:59

标签: jquery web-services asmx parameterized

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

3 个答案:

答案 0 :(得分:1)

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

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

<强> using jquery to consume aspnet json web services/

答案 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,因此无法捕获它。我把它改成了返回字符串并且它可以正常工作。