2014-03-07 23 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操作完成,重定向到该文件将自动下载它。 –