我在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'? –