我在jQuery中調用ajax調用時遇到問題。完成了這一百萬次後,我知道我在這裏錯過了一些非常愚蠢的事情。這裏是我做的Ajax調用javascript代碼:jQuery ajax調用似乎沒有做任何事情
function editEmployee(id) {
$('#<%= imgNewEmployeeWait.ClientID %>').hide();
$('#divAddNewEmployeeDialog input[type=text]').val('');
$('#divAddNewEmployeeDialog select option:first-child').attr("selected", "selected");
$('#divAddNewEmployeeDialog').dialog('open');
$('#createEditEmployeeId').text(id);
var inputEmp = {};
inputEmp.id = id;
var jsonInputEmp = JSON.stringify(inputEmp);
debugger;
alert('Before Ajax Call!');
$.ajax({
type: "POST",
url: "Configuration.aspx/GetEmployee",
data: jsonInputEmp,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
alert('success');
},
error: function (msg) {
alert('failure');
}
});
}
這裏是要調用的嘗試我的CS代碼:
[WebMethod]
public static string GetEmployee(int id)
{
var employee = new Employee(id);
return Newtonsoft.Json.JsonConvert.SerializeObject(employee, Newtonsoft.Json.Formatting.Indented);
}
當我嘗試運行它,我得到警報說說Before Ajax Call!
。但是,我從來沒有收到一條提示success
或提示failure
。我確實進入了我的CS代碼,並在GetEmployee
方法上放置了一個斷點。斷點確實發生了,所以我知道jQuery正在成功調用該方法。我逐步完成了該方法,並且執行得很好,沒有任何錯誤。我只能假設當jQuery ajax調用從調用返回時發生錯誤。
此外,我查看我的事件日誌只是爲了確保沒有發生ASPX錯誤。日誌中沒有錯誤。我也看了一下控制檯。沒有腳本錯誤。任何人有什麼想法我在這裏失蹤?
`
嘗試使用「console.log(msg);」代替警報成功/失敗並查看瀏覽器控制檯日誌(在chrome上控制shift J,但所有最近的瀏覽器都有日誌)以查看是否記錄了msg。如果它顯示在日誌中,您可以點擊msg並展開它,看看它說什麼。 – Paul
使用Fiddler來查看請求是否實際發生以及返回的內容。如果使用Chrome設置「引發時」進行異常處理。還要考慮將'$ .ajax'封裝到try/catch中,以便知道它是否直接失敗/查看失敗(現在不是你的情況)。 –
不是ajax屬性'dataType',而不是'contentType'? –