2013-03-13 46 views
1

我正在研究ASP.NET Web窗體應用程序。 我正在處理我的Web服務代碼中服務器端的文件。 此Web方法將返回文件內存流。 我想使用javascript方法在客戶端使用此內存流。 在js方法處理後,我會打開彈出來下載該內存流。使用javascript的文件下載彈出框

功能ExportExel(){

$.ajax({ 
    type: "POST", 
    url: baseUrl + '/' + "WebServices/ExtraInfoWebService.asmx/Urlhttphandler", 
    data: {}, 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function (msg) { 

     //********some code require here.... ************* 
    } 
}); 

在msg.di正在逐漸內存流 我在這裏需要的代碼 // *一些代碼需要在這裏.... ** * *** 顯示文件下載彈出。 任何幫助/指針都會對我有所幫助。

+0

爲什麼你不只是重定向到下載頁面?如果它有特殊的標題強制下載,您的頁面將不會實際發生更改,而不會啓動下載。 – aram90 2013-03-13 12:16:20

+0

你能告訴我如何重定向到我的下載頁面從JavaScript函數?小代碼片段將爲我理解。 – Prashant 2013-03-13 12:22:45

+0

只需做: location.href =「downloadable/file/url.php」; – aram90 2013-03-13 12:51:06

回答

1

對於您需要給new request到服務器.. Ajax電話不提供太多設施(顯示彈出式廣告時,你得到的流) 如果您發送新的請求和響應獲得流的形式。瀏覽器顯示save and open popup。你不需要手動去做

+0

我如何發送新的請求到服務器?而不是Ajax調用你建議的任何其他。非常感謝您的幫助。 – Prashant 2013-03-13 12:23:53

+1

使用$('#'+ form_id).attr('action',new_url_action); $( 「#form_id」)提交()。在$ .ajax的javascript insead中,在提交之前,如果有表單域 – 2013-03-13 12:33:00

+0

$('#'+ form_id).attr('action',new_url_action); $( 「#form_id」)提交()。這工作,但它在同一瀏覽器的頁面打開窗口。任何其他參數傳遞或方法來避免這個 – Prashant 2013-03-13 12:44:20