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“自动修复”对我来说没有。是的,对不起,我的代码中有这个,在我修剪时忘记在这里包含它。仍然没有。我更新了我的问题以包含它。然后我不知道,对不起:)