0
當單擊表單提交按鈕時,我可以調用AJAX請求,但如果頁面由於表單提交而重新加載/重定向,AJAX請求是否仍會完成?我問這個,所以我可以做一些事情,如提交表單時通過AJAX上傳文件。AJAX調用然後頁面重定向
我很確定我無法獲得AJAX調用的輸出,但我可能是錯的嗎?
當單擊表單提交按鈕時,我可以調用AJAX請求,但如果頁面由於表單提交而重新加載/重定向,AJAX請求是否仍會完成?我問這個,所以我可以做一些事情,如提交表單時通過AJAX上傳文件。AJAX調用然後頁面重定向
我很確定我無法獲得AJAX調用的輸出,但我可能是錯的嗎?
這是可能的,但不能保證在您離開頁面時請求已完成。如果您通過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;
});
謝謝馬特!我正在查看一旦頁面的其餘部分已提交給客戶端,請求是否會繼續服務器端。 – Bojangles 2011-02-18 18:54:55