2010-03-01 84 views
2

我有一個表單發佈到一個可觸發文件下載的url。服務器是ASP.NET MVC,我寫出一個CSV文件。有沒有jQuery提交表單來獲取文件下載?

我想要做的是有一個jQuery/JavaScript提交表單而不是表單提交按鈕。

例如,我創建了一個鏈接,連接使用jQuery提交表單的處理程序:

$(function() { 
    $("#mylink").click(function() { 
     $("form").submit(); 
     return false; 
    }); 
}); 

我也嘗試序列化的形式,做一個ajax後有同樣的結果。

我得到的是請求/響應應該發生,但我沒有得到文件下載(保存文件)對話框。例如,我可以通過使用fiddler來驗證響應。

就好像響應發生在帶外或某種情況下,如果你願意,並行線程中,沒有人在門口。

有人能發光嗎? 感謝

UPDATE 出於某種原因,$("form").submit()不工作,但我可以做我的驗證和預處理,然後返回true,它的工作原理。

+0

您使用的是Internet Explorer嗎?你確定瀏覽器沒有阻止你的下載嗎? – Pointy 2010-03-01 18:50:15

+0

我試過IE和FireFox都有相同的結果。 – 2010-03-01 19:03:38

回答

0

如果您在窗體上調用提交方法,那麼點擊一個正常的提交按鈕就完全一樣。

使用XHR會失敗(因爲文件將由XHR而不是普通的瀏覽器響應處理程序處理),但.submit()應該可以工作。

這聽起來像你只是沒有設置content-disposition標題,導致瀏覽器將數據視爲附件而不是內聯文檔。

+0

我正在設置內容處置好 - 就像我說的,我可以在提琴手中看到它。我得到你關於XHR位。我也不確定爲什麼submit()不起作用。我將仔細檢查表單請求。也許它正在尋找的作爲服務器啓動文件下載的指標的領域尚未完成。 – 2010-03-01 19:06:39