.ajax()中的成功函数不会执行
当我使用Firebug进行调试时,看到成功后跳转到错误部分的控件。我无法找出发生了什么问题。请指出这个代码有什么问题。.ajax()中的成功函数不会执行
$(function(){
$.ajax({
type: "POST",
url: "service/MyService.asmx/GetAsgInfo",
data: "{id: " + parseInt($('#AsgId').val()) + "}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
// var s = eval('(' + msg.d + ')');
alert(msg.d[0].SubmittedCount);
},
error: function (e) {
alert("error : " + e);
}
});
});
POST:
{id: 5301}
回应:
{"d":[{"__type":"Proxies.AFARServiceRef.AssignmentInfo","ExtensionData":
{},"AssignDate":"\/Date(1319526000000)\/","AssignFileName":null,"ClaimId":"MH001025","ClaimantName":"Deborah C Plaid","FirstContactDate":"\/Date(1319526000000)\/","FirstContactTime":
{"Ticks":420000000000,"Days":0,"Hours":11,"Milliseconds":0,"Minutes":40,"Seconds":0,"TotalDays":
0.4861111111111111,"TotalHours":11.666666666666666,"TotalMilliseconds":42000000,"TotalMinutes":700,"TotalSeconds":42000},"Id":5301,"InspectionDate":"\/Date(1319612400000)\/","StatusId":1,
"SubmittedCount":4,"UploadedCount":14}]}
除了使用成功和错误功能,请尝试使用完整:
complete: function(jqXHR, textStatus) {
alert(textStatus);
}
textSTatus包含字符串“Success”。应该如何继续进一步获取数据。 – BumbleBee
可以做这只是一个测试,但我不建议它的生产。他们希望代码在成功时作用于响应,如果不成功则捕获错误。完整的参数对于“不管什么,运行这个”代码更有用。如果他们使用完整的,他们将不得不写一个方法来处理错误。 –
@GregPettit,BumbleBee正在处理这个[ticket]中提到的问题(http://bugs.jquery.com/ticket/9399)。我推荐'完整'(或新的'总是'),因为这是一个全部的问题,包括服务器端错误。如果警报显示“成功”,那么响应不会被解释为JSON就会出现问题。 –
我有一个类似的问题与处理JSON和它呃,我没有在服务器端正确设置内容类型。即使有效的json在标有“text/plain”或甚至“text/json”的响应中也会引发奇怪的错误。确保你的内容类型是正确的。
检查MyService.asmx返回的状态代码 –
这正是您如何得到响应的原因吗? ''TotalMinutes':7'之后不应该有换行符,这会产生一个错误(它不是有效的JSON)。 –
@MichaelMior HTML标签下的状态码(Firebug)说302找到 – BumbleBee