【发布时间】:2015-10-28 13:49:29
【问题描述】:
我正在尝试通过使用 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 内部服务器错误。
更新2
内部错误是由于我将 [HttpPost] 属性更改为 [WebMethod] 并且它可以工作。
【问题讨论】:
-
查看对这个 SO 问题的公认答案:stackoverflow.com/questions/6928533/… 尝试按照在目标 WebMethod 中完成的方式创建 URL,而不是对其进行硬编码
-
@IanGilroy 将 url 更改为: 现在我收到此错误: Uncaught SyntaxError: Invalid flags提供给 RegExp 构造函数“通知”
-
也许你可以参考另一个这样的链接:ajax call jquery asp.net mvc
标签: javascript c# jquery asp.net ajax