2014-02-17 66 views
0

我在我的web應用程序中有一個「發送郵件」表單,允許用戶發送關於我的應用程序的評論或建議。起初,我創建了一個很好的簡單POST表單,並在發送郵件後重新加載了「您的郵件已成功發送」消息。帶附件的郵件發送表單留在同一頁面

問題是,當按下瀏覽器時,它回到相同的表單頁面,因爲它被添加兩次到歷史堆棧。

因此,我所做的是通過AJAX將表單發送請求發送給jQuery,然後在響應正常時顯示消息。這是我使用的代碼:

$.post(form.attr('action'), form.serialize(), 
    function (response) { 
     var success = eval(response).success; 
     if (success == '1') 
      showSuccessDialog(successMessage); 
     else 
      showSuccessDialog(errorMessage); 
    }, 'json') 
    .fail(function (data) { 
     showSuccessDialog(errorMessage); 
    }); 

的問題是,我也有一個「附件」文件輸入與常規POST請求工作正常,但不經過我的AJAX POST請求被髮送。

我做錯了什麼?有什麼辦法可以解決這個問題嗎?

回答

0

通過XmlHttpRequest發送文件僅在較新的瀏覽器中支持(閱讀:IE10),因此您可能需要驗證您是否準備好執行此操作。

如果你是,看看FormData JavaScript API。它允許發送文件以及通常的表單數據。

有JS插件,利用這個API,所以你可能想環顧四周,看看你是否能找到你可以使用的東西。我現在正在整合一個,所以你可能想看看source code作爲參考。