我正在尝试使用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]并且它有效。
答案 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)
我假设您没有传递任何参数。那么您可以尝试数据:{}而不是数据:“{}”。