为什么使用 jquery 的提交与服务器 302 代码重定向到互联网浏览器中的错误网址?



我有一个表单,它将在提交数据之前执行一些验证,因此我将此验证绑定在提交按钮的单击事件中。

$('#myButton').click(function(e){
  e.preventDefault();
  e.returnValue = false;
  //perform validations...
  if(valid) {
    $('#theForm').submit();
  }
});

到目前为止没有什么神奇的。如果服务器端一切正常,页面将返回 302 http 状态代码。

在 Firefox 和 Chrome 中,网址已成功重定向,但在 Internet Explorer 8(未在其他版本中测试)中,这会导致浏览器重定向到同一网址

如果我删除 JavaScript 代码,IE 重定向是正确的

所以,我的问题是,JQuery的submit()与普通的html提交有什么不同?

我不确定有什么区别,但你应该能够直接触发表单的提交事件,有效地绕过jQuery的提交事件处理。

$("#theform")[0].submit();

如果发生同样的事情,那么问题不在于jQuery,而很可能是跨浏览器的问题。

最新更新