2014-02-25 433 views
0

我有一個Ajax發佈請求,可能會收到靜態文件作爲響應,但我不知道如何將該文件顯示給客戶端。我的意思是通過發佈請求下載功能。Ajax請求通過發佈請求獲取文件

這裏是我的樣品Ajax請求:

function Getfile(id) 
       { 
       var mhost='http://myhost/post'; 
       $.ajax({ 
        type: 'POST', 
        url: mhost, 
        data: { task: 'getfile', id: myid }, 
        beforeSend:function(){ 
        // this is where we append a loading image 

        }, 
        success:function(data){ 
        // successful request; how to show file to the user for download? 
        }, 
        error:function(){ 
        // failed request; give feedback to user 

        } 
       }); 

       } 

在此先感謝

+0

您可以提供一個js小提琴或指定您想要顯示數據的位置。它是一個頁面還是一列。而你正在嘗試做的事情應該使用GET方法完成而不是發佈。 –

+0

它是什麼類型的文件? – LGSon

+0

只需將用戶重定向到文件的完整路徑即可在您的成功功能 – semirturgay

回答

0

一種方法是把它們都與任何其他HTML,並顯示在瀏覽器中;

success:function(data){ 
    // successful request; how to show file to the user for download?     }, 
    location.href = data; 

對於PDF,誰擁有一個PDF瀏覽器的用戶可能會看到它直誰也不會得到一個下載請求的用戶。

對於TXT,大多數用戶可能會看到它,其餘的會得到一個下載請求。

其瀏覽器採取的操作取決於瀏覽器設置。

儘管如此,您可以使用內容標題以其他方式執行此操作。此鏈接有關於此的更多信息:How do I force download with HTML/JavaScript?

這也意味着您強制用戶上的其他內容,他們可能不喜歡。

第三種方法可以爲他們提供一個選擇,無論是下載還是在線閱讀。