【问题标题】:Firefox for Android not downloading file using window.locationFirefox for Android 不使用 window.location 下载文件
【发布时间】:2014-01-19 11:25:58
【问题描述】:

我正在尝试编写一个脚本,当您单击一个按钮时,您将被重定向到一个可下载的文件。 Android 上的 Firefox 是唯一可以做到这一点的浏览器。当我说只是,我的意思是:

在我的桌面上:

  • IE5、7、8、9、10 和 11
  • FF
  • 歌剧
  • 野生动物园

在我的平板电脑上:

  • 百度浏览器
  • 船用浏览器
  • 股票 ICS 浏览器
  • Chrome 测试版
  • 海豚浏览器
  • 下一个浏览器
  • 歌剧
  • Opera 测试版
  • 迷你歌剧
  • UC 浏览器

所有这些工作。我什至厌倦了远程调试,并手动使用控制台重定向到要下载的文件,但它所做的一切都是刷新页面。但是,如果我手动输入 URL,它会下载。

任何人都可以对此提供任何见解吗?

谢谢。

编辑:

[页面已删除]

看起来直接地址不再有效。任一链接或直接地址的输出为:

GET [URL] [HTTP/1.1 200 好的]

【问题讨论】:

  • FF mobile 上会发生什么? (除了它“不起作用”之外,你不会说它)。您可以在自己的设备上进行测试吗? (以 MS Excel 文档为例....)您转发的“下载”URL 是否为正在提供的内容设置适当的 MIME 类型(例如:Content-type: application/vnd.ms-excel 标头)? “下载” URL 是否设置了适当的配置? (例如:Content-disposition: attachment; filename="name_of_excel_file.xls")。
  • 没什么。我只是看到加载栏穿过。控制台显示通过 HTTP 200 响应请求的文件,但我没有下载。我只是直接进入一个原始的 mp3 文件,所以我假设浏览器会像所有其他浏览器一样处理标题。
  • 我已经添加了一个链接以及我在原始帖子中得到的内容
  • 您认为浏览器负责下载是错误的(或者如果您的意思是代表您制造标题)。如果您希望将文件“下载”到客户端,您(在服务器 端)至少需要设置Content-disposition: attachment。否则,发生的事情完全取决于用户代理。
  • 顺便说一句:鉴于您尚未安排客户端下载文件,最有可能的情况是Android上的FF正在尝试播放MP3,或者要求Android OS播放它。

标签: javascript android firefox


【解决方案1】:

本质上,您必须使用服务器来强制下载,因为 FF for Android 的行为与其他所有浏览器不同。我想要一个更好的答案,但本质上,你只需要处理这种行为。

您可以通过阅读原帖下的完整讨论来了解更多信息。

【讨论】:

  • 您应该将讨论的相关部分编辑到这个答案中。
猜你喜欢
  • 2020-08-14
  • 2018-03-08
  • 1970-01-01
  • 1970-01-01
  • 2018-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-25
相关资源
最近更新 更多