Ajax调用asp.net web方法不会触发

时间:2016-03-19 02:53:57

标签: javascript c# asp.net ajax

我是ajax和javascript的新手。

我在网站的根目录中名为people.aspx的页面中有以下Web方法:

[System.Web.Services.WebMethod]
public static string RenderDetails()
{
    return "Is it working?";
}

我正在尝试通过people.aspx页面的Ajax调用来访问Web方法。我对div的click事件进行了以下ajax调用:

$("div.readonly").click(function (e) {
    e.stopPropagation();
    $.ajax({
      type: "POST",
      async:false,
        url: "people.aspx/RenderDetails",                   
        dataType: "json",
        beforeSend: function () {
            alert("attempting contact");
        },
        success: function (data) {
            alert("I think it worked.");
        },
        failure: function (msg) { alert("Sorry!!! "); }
    });

    alert("Implement data-loading logic");
});

我没有在javascript控制台中收到任何错误,但是,ajax调用也没有点击web方法。任何帮助将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分:0)

尝试将类型更改为GET而不是POST(这可能是您的网页未被点击的原因)。同样是您的failure parameter is incorrect,它应该是error。展开它以包含所有参数(它将提供更多信息)。简而言之,将整个AJAX查询更改为:

$.ajax({
    type: "GET",
    async:false,
    url: "people.aspx/RenderDetails",                   
    dataType: "json",
    beforeSend: function () {
        alert("attempting contact");
    },
    success: function (data) {
        alert("I think it worked.");
    },
    error: function (jqXhr, textStatus, errorThrown)
        alert("Sorry!!! ");  // Insert breakpoint here
    }
});

在浏览器中,调试错误功能。参数(特别是jqXHR)包含大量有关失败的信息。如果您还有更多问题,请向我们提供jqXHR中的信息(错误字符串,错误代码等)。