我的問題似乎有非常簡單的解決方案,搜索後搜索和谷歌搜索我無法找到它。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