使用AJAX

时间:2015-10-28 13:49:29

标签: javascript c# jquery asp.net ajax

我正在尝试使用AJAX从客户端调用服务器端的函数。

每次调用AJAX方法时都会出现此错误:

http://localhost:5958/myaccount/notifications/myaccount/notifications/Default.aspx/method无法加载资源:服务器响应状态为404(未找到)

这是我的AJAX功能:

    function ShowCurrentTime() {
        $.ajax({
            type: "POST",
            url: "myaccount/notifications/Default.aspx/method",
            data: "{}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: OnSuccess,
            failure: function (response) {
                alert(response.d);
            }
        });
    }
    function OnSuccess(response) {
        alert(response.d);
    }

HTML控件:

<input id="btnGetTime" type="button" value="Show Current Time"
    onclick="ShowCurrentTime()" />

功能我试图在服务器端调用:

        [WebMethod]
    protected bool method()
    {
        return true;
    }

这样做的正确方法是什么?

更新

将网址更改为:'<%= ResolveUrl("~/default.aspx/method") %>',现在我收到500内部服务器错误。

UPDATE2

内部错误是由于[HttpPost]属性引起的,我改为[WebMethod]并且它有效。

3 个答案:

答案 0 :(得分:1)

我认为问题出在您的网址

使用如下所示的前导斜杠(/)。

url:"/myaccount/notifications/Default.aspx/method"

答案 1 :(得分:1)

您的服务器端呼叫必须是静态公共呼叫。 https://msdn.microsoft.com/en-us/library/bb398998(v=vs.90).aspx

[WebMethod]
public static bool method()
{
    return true;
}

答案 2 :(得分:0)

我假设您没有传递任何参数。那么您可以尝试数据:{}而不是数据:“{}”。