ASP.NET 3.5使用AJAX调用[WebMethod] - 500错误

时间:2014-12-11 17:48:55

标签: c# jquery asp.net ajax webmethod

我有一个网站项目(ASP.NET 3.5)。

Search.aspx.cs中的一种方法如下所示。这是我试图调用的方法,因此我可以将一些数据返回给Ajax调用:

    [WebMethod]
    public static string TestMethod(string param)
    {
        return "It worked";
    }

从客户端按钮调用上述方法有困难点击Search.aspx页面内部:

<form runat="server" id="mainForm" class="form-horizontal">
<input id="addButton" type="button" value="Add" />
</form>

<script>
$('#addButton').click(function () {
            $.ajax({
                type: "GET",
                url: "Search.aspx/TestMethod",
                data: "{}",
                contentType: "application/json",
                dataType: "json",
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    alert("Request: " + XMLHttpRequest.toString() + "\n\nStatus: " + textStatus + "\n\nError: " + errorThrown);
                },
                success: function (result) {
                    alert("We returned: " + result);
                }
            });
        });

</script>

这是显示错误ajax功能的警告框的屏幕。

enter image description here

这是Firefox调试器中的另一个:

enter image description here

以下是来自Firefox调试器的完整错误的屏幕截图:

enter image description here

1 个答案:

答案 0 :(得分:-1)

您的方法希望收到参数...

将您的方法更改为:

[WebMethod]
public static string TestMethod()
{
    return "It worked";
}

或者将你的js更改为此(你必须使用POST类型):

<script>
$('#addButton').click(function () {
            $.ajax({
                type: "POST",
                url: "Search.aspx/TestMethod",
                data: JSON.stringify({ "param" : "anything"}),
                contentType: "application/json",
                dataType: "json",
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    alert("Request: " + XMLHttpRequest.toString() + "\n\nStatus: " + textStatus + "\n\nError: " + errorThrown);
                },
                success: function (result) {
                    alert("We returned: " + result);
                }
            });
        });

</script>