jqueryajax发布到ie7,处理响应

jqueryajax发布到ie7,处理响应,jquery,ajax,internet-explorer,internet-explorer-7,requirejs,Jquery,Ajax,Internet Explorer,Internet Explorer 7,Requirejs,我在这里读过很多不同的解决方案,但我什么都做不到。基本上,我是用这个来做下面的文章。它工作正常,所有正确的警报都会触发,但它总是重定向到响应。因此,如果我得到一个200 HTML响应,它将显示它并删除表单页面。与400相同,将显示IE7的400错误页面。我遗漏了什么来防止这种重定向 var $form = $("#myform"); $form.submit(function(e) { e.preventDefault ? e.preventDefault()

我在这里读过很多不同的解决方案,但我什么都做不到。基本上,我是用这个来做下面的文章。它工作正常,所有正确的
警报都会触发,但它总是重定向到响应。因此,如果我得到一个200 HTML响应,它将显示它并删除表单页面。与400相同,将显示IE7的400错误页面。我遗漏了什么来防止这种重定向

    var $form = $("#myform");
    $form.submit(function(e) {

        e.preventDefault ? e.preventDefault() : e.returnValue = false;

        $form.ajaxSubmit({
            type: $form.attr('method'),
            url: $form.attr('action'),

            beforeSend: function(xhr, settings) {
                alert("sending");
            },
            success: function(data, status) {
                alert("success");
            },
            error: function(data, status) {
                alert("error");
            }
        });

        return false;

    });
更新

我说的不对。警报不会触发。希望这能有所帮助。警报被触发,它在IE7模式下运行的IE10中正常工作(包括禁止重定向)。除了它在收到400码时调用了
success
方法。但它没有改变方向。然后,我在一个虚拟机的本机IE7上进行了测试,没有触发警报,它确实重定向了

更新2


对不起,上网了。。。整个脚本没有在IE7中运行。请参阅下面我的答案。

尝试添加
返回false到事件挂钩的末尾;某些浏览器不正确地支持
preventDefault()
,并期望显式的
false
返回值

var $form = $("#myform");
$form.submit(function(e) {

    $form.ajaxSubmit({
        type: $form.attr('method'),
        url: $form.attr('action'),

        beforeSend: function(xhr, settings) {
            alert("sending");
        },
        success: function(data, status) {
            alert("success");
        },
        error: function(data, status) {
            alert("error");
        }
    });

    e.preventDefault ? e.preventDefault() : e.returnValue = false;
    return false;
});
我正在使用加载脚本,出于某种原因,模块阻止在IE7中加载脚本。因为
。因此,围绕上述代码的是:

define(['domReady!', 'jquery.form'], function() {
    //code from question
});
我将其更改为以下内容,并开始工作:

define(['domReady', 'jquery.form'], function(ready) {
    ready(function() {
        //code from question
    });
});

现在我只需要弄清楚,当服务器返回
400
错误时,为什么它仍然调用
success

即。。。七个?!你真的需要支持吗?我很抱歉:(老兄,你不知道。我希望我没有。我感觉到了你的痛苦,老兄。我曾经花了一个星期的大部分时间修复一个ASP经典网站,以便在IE 7中工作:/只是为了检查,你正在使用,是吗?在jquery和polyfills等之间,这让生活很痛苦。尽管我要说的是,它帮助我抓住了一些东西。本可以做得更好的点不是han modern engines“自动修复”对我来说没有。是的,对不起,我的代码中有这个,在我修剪时忘记在这里包含它。仍然没有。我更新了我的问题以包含它。然后我不知道,对不起:)