2014-03-07 26 views
-1

我從一個網址獲取數據,現在我想用jquery將其下載到一個文件中。我該怎麼辦?我怎樣才能下載數據通過ajax jquery獲取文件?

$.ajax({ 
     url: 'some_url', 
     type: 'GET' 

    }).done(function(data){ 
    console.log(data) 
    $('#container').html(data); 
    }) 
+0

響應中的數據格式是什麼? JSON? –

+0

我在json中獲得一個db – user3319135

+0

爲什麼不直接建立鏈接或重定向到URL? –

回答

0

在文本文件的情況下,你可以這樣做:

$.ajax({ 
     url : "your_url_here/filename_here", 
     dataType : 'text', 
     success: function(data) { 
      console.log(data); 
     } 
}); 
+0

我正在做同樣的事情。我從網址獲取數據。並寫在console.log ....但我想下載所有的數據在另一個文件 – user3319135

+0

你的意思是你想檢索文件@ URL中的數據,然後將內容下載到本地文件? – Kyo

+0

你是對的kyo – user3319135

0

如果你只是想下載數據,強制文件下載試試這個; 你不應該需要jQuery;

window.location="url"; 

或者,如果你已經有數據客戶端這樣的事情應該工作;

if (navigator.appName != 'Microsoft Internet Explorer') 
{ 
    window.open('data:text/csv;charset=utf-8,' + escape(data)); 
} 
else 
{ 
    var popup = window.open('','mydata',''); 
    popup.document.body.innerHTML = '<pre>' + data + '</pre>'; 
}  

下面是如何做到這一點的鏈接; http://www.zachhunter.com/2010/11/download-json-to-csv-using-javascript/

+0

我已經獲取數據。現在我想將這些數據保存在我的文件夾中的另一個文件中 – user3319135

+0

本地計算機上文件夾中的文件?不知道你可以做到這一點... http://en.wikipedia.org/wiki/JavaScript#Security –

+0

是的..文件是在我的本地機器上,或者我可以通過它創建一個文件 – user3319135

0

由於AJAX請求違反了相同的原始規則請求,因此無法觸發下載,基本上瀏覽器本身需要通過指向下載腳本的表單或iframe觸發下載。我會創建一個帶有src =「path_to_script/download?blah = blah & blah = blah」的iframe來下載它。

+0

它將是什麼代碼if我用iframe? – user3319135

+0

一旦您在成功函數中獲取數據,就可以使用指向腳本的src屬性附加一個新的iframe。你將不得不改變你看這個的方式,因爲你的AJAX調用將不能獲取數據並將它作爲文件提供給你。很難給你寫一段代碼,因爲我可能不需要做一個Ajax調用,也許只需將一個點擊事件綁定到一個按鈕上,並用JavaScript附加iframe。 – rafaCode

-1

通過下載,您的意思是寫入存儲在您的硬盤上的文件?如果是這種情況,那麼我懷疑JS不會做這樣的事情,因爲互聯網不可信任,可以篡改硬盤上的內容。

但是,如果寫入文件是你的意圖,你可以嘗試下面的代碼。

$.get('some url',{},function(data){ 
    function WriteToFile(sText){ 
    var fso = new ActiveXObject("Scripting.FileSystemObject"); 
    var s = fso.CreateTextFile("C:\\test.txt", true); 
    s.WriteLine(data); 
    s.Close(); 
    } 
}) 
+0

ActiveXObject未定義..它顯示此錯誤 – user3319135

+0

ActiveXObject僅適用於Internet Explorer。但是,爲什麼不寫一個可以寫入文件的小服務?您只需使用ajax請求調用服務,然後將數據作爲輸入參數發送。一旦ajax操作完成,重定向到該文件將自動下載它。 –