【问题标题】:How to download silently with javascript如何使用 javascript 静默下载
【发布时间】:2016-10-13 09:51:32
【问题描述】:

我是 javascript 新手,我在完成一项活动时遇到了一些麻烦...

我需要在客户端工作,将信息上传到“特殊”服务器,如下所示:

http://www.uninorte.edu.co/documents/71051/11558879/ExampleData.json/0a635cdd-ccdd-4a1c-8c88-b53bea431458

我想将它加载到主内存中,而不需要浏览器显示显式下载。

我尝试使用一些解决方案,但我真的不知道如何继续实现它。

...事先非常感谢您

(我不是英语母语者,写得不好请见谅)

[已解决]

我决定,目前,使用无论来源服务,它会返回一些我可以通过 $.getJSON“不下载”文件读取的内容。

结果:

<script type="text/javascript">
      $.getJSON('http://whateverorigin.org/get?url=' + "http://www.uninorte.edu.co/documents/71051/11558879/ExampleData.json/0a635cdd-ccdd-4a1c-8c88-b53bea431458" + '&callback=?', function(data){
        alert(data.contents);
      });
 </script>

谢谢你的回复,真的是你给了我灯来解决它

【问题讨论】:

  • 我认为您正在寻找 Ajax。或 JSON-P。两种技术允许 Javascript 从某个地方请求文件,而无需离开当前页面,并且对用户来说并不明显 - 至少在您使用文件中的数据以某种方式更新页面之前。
  • $.getJSON 目前为我工作,但我继续调查解决它的最佳途径,谢谢。

标签: javascript download file-transfer


【解决方案1】:

关于静音部分

您的浏览器始终能够识别来自 JS 的网络请求。因此,用户始终可以通过打开开发者工具看到所有的请求和响应。


现在将远程 json 加载到客户端的内存中

既然你提到你是JS的新手,我将介绍非常基础的,所以如果你已经知道了,请多多包涵

您需要使用 XMLHttpRequest 进行 ajax 调用,如图所示 here


然而,大多数人在抽象检查请求状态和其他琐碎任务时会使用 jQuery 之类的库。这使得 ajax 调用变得像调用方法并提供回调方法来处理响应一样简单。

$.ajax({
  url: '/path/to/file',
  type: 'default GET (Other values: POST)',
  dataType: 'default: Intelligent Guess (Other values: xml, json, script, or html)',
  data: {param1: 'value1'},
})
.done(function() {
  console.log("success");
})
.fail(function() {
  console.log("error");
})
.always(function() {
  console.log("complete");
});

您可以在下面的链接中找到示例。

http://api.jquery.com/jquery.getjson/

P.S.:由于信誉点较少,我不能发布任何支持图片,也不能发布超过两个链接。

【讨论】:

  • 哦,谢谢,我注意到我收到了“No-Access-Control-Allow-Origin ... Origin null 因此不允许访问”。 (为什么?我不知道,链接工作得很好)我会阅读更多关于该项目的信息,当我解决另一方问题时。
猜你喜欢
  • 2012-12-29
  • 2017-05-01
  • 1970-01-01
  • 2012-10-03
  • 2020-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多