我正在尝试使用IE8兼容性制作Web应用程序。我遇到的问题是同步POST方法。
由于一个原因,我使用了以下代码和jquery 3.x
console.log("First console log");
$.ajax(
url: '/Main/SomeUrl',
method: 'POST',
async: false,
data: objData,
success: function (result) {
'some process after success synchronously'
console.log("Second console log");
}
);
当我开始检查IE版本兼容性时,上面的代码在其他浏览器中运行良好。但是在 IE8 中使用 jQuery 1.7.2 (因为使用jquery.form
发送文件,我使用1.7.2),
console.log("First console log")
出现但
console.log("Second console log")
不是。这意味着,我猜,jQuery的ajax无效。
有没有办法在IE8中使用jquery 1.7.2或javascript代码在IE8和Chrome中同步POST?谢谢你的有趣!
答案 0 :(得分:1)
我有类似的问题。 我想尝试几种方法。
-
1。 包含jQuery的迁移版本。当我使用它时,我已经在旧版本的IE中解决了一些问题。
http://code.jquery.com/jquery-migrate-1.2.1.js"
2。 为IE设置ajax。
jQuery.ajaxSetup({
xhr: function() {
try{
if(window.ActiveXObject)
return new window.ActiveXObject("Microsoft.XMLHTTP");
} catch(e) { }
return new window.XMLHttpRequest();
}
});
3。 设置dataType。
$.ajax(
url: '/Main/SomeUrl',
method: 'POST',
async: false,
data: objData,
dataType: "json",
success: function (result) {
'some process after success synchronously'
console.log("Second console log");
}
);
答案 1 :(得分:1)
IE8似乎并不完全支持CORS - http://mcgivery.com/ie8-and-cors/ 这可能是你的问题。
您应该能够使用此脚本来解决问题。 https://github.com/MoonScript/jQuery-ajaxTransport-XDomainRequest
只需将脚本添加到HTML中,然后像往常一样调用ajax请求。插件应该在后台处理所有转换。