2011-02-18 153 views
0

當單擊表單提交按鈕時,我可以調用AJAX請求,但如果頁面由於表單提交而重新加載/重定向,AJAX請求是否仍會完成?我問這個,所以我可以做一些事情,如提交表單時通過AJAX上傳文件。AJAX調用然後頁面重定向

我很確定我無法獲得AJAX調用的輸出,但我可能是錯的嗎?

回答

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; 
}); 
+0

謝謝馬特!我正在查看一旦頁面的其餘部分已提交給客戶端,請求是否會繼續服務器端。 – Bojangles 2011-02-18 18:54:55

相關問題