【问题标题】:How to load file contents from another domain using just JS?如何仅使用 JS 从另一个域加载文件内容?
【发布时间】:2012-01-18 04:26:10
【问题描述】:

我正在考虑为移动用户做一些在线文件操作,想法是用户提供文件的URL,然后通过JS修改文件内容,然后可以下载。但是当文件位于单独的域中时,我无法弄清楚如何仅使用 JS 获取文件。

这可能吗?如果是这样,任何提示或示例将不胜感激。

只是想补充一点,我想做的就是让它在没有我托管的情况下可用。我正在考虑他们可以在某处托管的文件之类的东西,然后所有带宽都是他们自己的……当然还有他们从哪里获取文件的带宽。

【问题讨论】:

  • 您的目标浏览器支持什么,您可以访问其他域的代码吗?
  • 主要目标是iOS下的Safari,不,不能访问其他域。我将获得的文件总是某种二进制文件,而不是网页(但不一定是任何特定的 mime 类型)。

标签: javascript html binary


【解决方案1】:

在另一个域上加载文件内容的唯一方法是从<script> 标记内。这就是JSONP 的工作原理。考虑将您的目标文件转换为这种格式。

另一种方法是使用本地代理。创建一个加载和返回文件内容的 Web 服务方法,然后使用您喜欢的 JavaScript 框架在本地调用它。

【讨论】:

【解决方案2】:

根据您对公共 Web 服务的看法,并且在某些限制内我仍在映射,您可以使用对 YQL 的 ajax 调用来做到这一点,就像这样。

(稍后将展开答案)。

http://query.yahooapis.com/v1/public/yql?q=select%20%2a%20from%20data.uri%20where%20url=%22http://t3.gstatic.com/images?q=tbn:ANd9GcSyART8OudfFJQ5oBplmhZ6HIIlougzPgwQ9qcgknK8_tivdW0EOg%22

此方法的一个限制是文件大小,目前最高为 25k。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多