开发者

AJAX call then page redirect

I can call an AJAX request when a form submit button is clicked, but if the page reloads/redirects due to the form submission, will the AJAX request still complete? I'm asking this so I could do someth开发者_运维百科ing like upload a file via AJAX as the form is submitted.

I'm pretty sure I can't get the output of the AJAX call, but could I be wrong?


It's possible, but there's no guarantee that the request would have completed by the time you leave the page. If you're submitting a form via AJAX and also want to submit a file, you might consider placing the file upload in a completely separate form tag, then trigger the form submission after the AJAX call is successful. For example:

<!-- 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>

Then in Javascript (using jQuery example for brevity, note I haven't tested this code at all):

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜