我的问题似乎有非常简单的解决方案,搜索后搜索和谷歌搜索我无法找到它。jQuery ajax无法调用WebMethod
我有一个位于UrlUpdatePage.aspx中的客户端脚本。它定期打电话从aspx获取json以获取操作的当前状态并向用户显示消息。下面是Ajax调用:
var listenForStatusChanges = function() {
$.ajax({
type: 'GET',
url: "/UrlUpdatePage.aspx/GetRunningState",
data: "{}",
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (data) {
alert(data.IsRunning);
}
});
};
在代码隐藏文件UrlUpdatePage.cs我有这样一个方法
[WebMethod]
[ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]
public static string GetRunningState()
{
...
return jsonObj;
}
问题是当AJAX调用时,该GetRunningState
方法不在调试模式下触发并且success
回调不太好。此外,当我在Firebug中查看请求的详细信息时,会发出请求,但是从响应选项卡我可以看到该调用返回html标记,而不是json数据。
应该怎么做才能将GetRunningState
方法暴露给客户端并从服务器获取json?我使用.NET 4
把你的html作为回复复制到记事本中,保存为html文件并打开。瞧!有你的错误。下一篇文章截图在这里。 – krishgopinath
@passionateCoder我无法上传屏幕截图,但没有意义:响应只显示此页面的标记。 – myroman