AJAX调用然后页面重定向

时间:2011-02-18 14:40:24

标签: ajax

我可以在单击表单提交按钮时调用AJAX请求,但如果页面由于表单提交而重新加载/重定向,那么AJAX请求是否仍然完成?我问这个,所以我可以做一些事情,比如提交表格时通过AJAX上传文件。

我很确定我无法获得AJAX调用的输出,但我可能错了吗?

1 个答案:

答案 0 :(得分:2)

这是可能的,但无法保证在您离开页面时请求已完成。如果您通过AJAX提交表单并且还想提交文件,您可以考虑将文件上载放在一个完全独立的表单标签中,然后在AJAX调用成功后触发表单提交。例如:

<!-- First form with your data -->
<form action="/your/url/here" method="post" id="form1">
   <input type="text" name="title" />
   <input type="submit" value="Save" />
</form>
<!-- Second form with your file -->
<form action="/uploadfile" method="post" id="form2" enctype="multipart/form-data">
   <input type="file" name="fileupload" />
</form>

然后在Javascript中(为了简洁起见使用jQuery示例,请注意我还没有测试过这段代码):

$('#form1').bind('submit', function() {
  $.ajax({
      url: $(this).attr('action'),
      data: $(this).serialize(),
      type: 'post',
      success: function() {
        $('#form2').submit();
      }
  });
  return false;
});