【发布时间】:2012-07-24 04:49:06
【问题描述】:
我有一个 jQuery ajax 调用,它在 IE 中运行良好,但在 Chrome 和 Firefox 中不断出错。我在我的应用程序的其他地方有类似的 ajax 调用,它们在所有浏览器中都能正常工作,但由于某种原因,这个没有。
首先,我在这里做的事情是否明显会在 IE 以外的浏览器中中断,其次同样重要的是,有没有办法从 error: function (e) {} 块中获得有意义的东西?
$.ajax({
type: "POST",
url: "http://localhost:52350/FabRouting/Webservice/FinalizeFileStream.asmx/FinalizeFileStreamDoc",
data: JSON.stringify({ DocID: docID, FileSize: file.size }),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
if (data.d.length == 0) {
//error
$("[id$=txtResult]").val("error 0");
}
else {
$("[id$=txtResult]").val(data.d[0].Result);
}
},
error: function (e) {
//error
$("[id$=txtResult]").val("error");
}
});
【问题讨论】:
-
打开控制台 (F12) 并检查错误内容。它应该返回一个 asp.net 错误页面(如果您没有打开客户错误)
-
JSON.stringify 在某些但不是所有浏览器中可用。您需要添加一个库(例如 json2.js )以将该功能添加到不支持它的浏览器。
-
您是通过 alert(e) 还是 console.log(e) 来查看是什么?另外,尝试使用 Chrome 开发工具。 (按 Ctrl+Shift+J),打开控制台查看错误。告诉我它是怎么说的。
-
控制台显示它实际上正在被调用,并且 Post 确实以正确的格式包含我的数据。响应是空白的。
-
我在其他地方使用 JSON.stringify,它在我定位的浏览器中运行良好。帖子似乎确实在发布我所拥有的东西,所以它似乎也在这里工作。