ajax post 适用于 chrome、firefox 但不适用于 internet explorer
ajax post works with chrome, firefox but not internet explorer
我有以下 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 工作...那是另一回事...不知道为什么我以前不使用 try catch,本来可以保存我有时间。
我有以下 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 工作...那是另一回事...不知道为什么我以前不使用 try catch,本来可以保存我有时间。