同步 POST 与 jquery 1.7

synchronous POST with jquery 1.7

我正在尝试制作与 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 版本兼容性时,上面的代码在其他浏览器中运行良好。但是在 IE8jQuery 1.7.2 中(因为用 jquery.form 发送文件,我使用 1.7.2) ,

console.log("First console log")

出现了但是

console.log("Second console log")

不是。这意味着,我猜,jQuery 的 ajax 不工作。

有什么方法可以在 IE8 中使用在 IE8 和 Chrome 中工作的 jquery 1.7.2 或 javascript 代码同步 POST?谢谢你的有趣!

我遇到了类似的问题。 我想尝试几种方法。

-

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。 设置数据类型。

$.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");
    }
);

IE8 似乎没有完全支持 CORS - http://mcgivery.com/ie8-and-cors/ 这可能是你的问题。

您应该可以使用此脚本来解决问题。 https://github.com/MoonScript/jQuery-ajaxTransport-XDomainRequest

只需将脚本添加到您的 HTML 并像往常一样调用 ajax 请求。该插件应在后台处理所有转换。