>我有以下ajax代码:
$.ajax({
type: "POST",
async: false,
url: "Plan.aspx/SaveData",
data: JSON.stringify(DTO),
contentType: "application/json; charset=utf-8",
dataType: "json",
cache: false,
traditional: true,
success: function (response) {
if (response.d == "YES") {
check = response.responseText;
}
},
error: function (response) {
check = "Error: " + response.responseText;
return false;
}
});
此代码适用于 Firefox 和 chrome,但不适用于 Internet Explorer。 两端均未发生错误。 奇怪的是,代码在Visual Studio IDE(VS 2013(中工作,但在IIS 7.5上部署时则不行。 我到处寻找答案,但没有运气。
这里有人有什么想法吗?
更新:编辑以添加成功代码,该代码永远不会执行,因为 ajax 调用永远不会在 IE 上执行,但在 Firefox 和 Chrome 上执行!
好的,想通了。 我更改了代码,用函数调用包装了它,并添加了 try catch 以使其更易于调试。 我的代码:
function postdata(DTO) {
var success = false;
try {
$.ajax({
type: "POST",
async: false,
url: "Plan.aspx/SaveData",
data: JSON.stringify(DTO),
contentType: "application/json; charset=utf-8",
dataType: "json",
cache: false,
traditional: true,
success: function (response) {
success = true;
},
error: function (response) {
alert("Ajax post failed, the error is: " + response.responseText)//+ " Test = " + test);
success = false;
}
});
}
catch (Error) {
success = false;
}
return success;
}
catch 捕获错误JSON is undefined
,在这里我认为它是浏览器原生的,而不是 IE,我不得不添加一个名为 json3.js 的 javascript 文件,你可以在这里找到它:
https://bestiejs.github.io/json3/
现在它可以在所有三个浏览器中工作...现在,如果我能让 Edge 工作......那是另一个故事...不知道为什么我以前没有使用尝试捕获,可以节省我一些时间。