【问题标题】:Android does not recognize response header setted by Node.jsAndroid 无法识别 Node.js 设置的响应标头
【发布时间】:2013-12-17 04:59:48
【问题描述】:

我有基于 Node.js 构建的 API 服务器。

我已经为下载数据设置了响应头,如下所示。

 res.setHeader('Content-Length', fileSize);
 res.setHeader('Content-Type', 'application/octet-stream');
 res.setHeader('Content-Disposition', 'attachment;filename="' + fileName + '"');

在任何计算机操作系统和网络浏览器中都能正常工作。

但是,当我尝试使用 Android 手机下载数据时,任何网络浏览器(例如 dolphine、chrome、FF)识别响应标头(即。 , 文件名, 内容长度)

谁能帮我解决这个问题?

提前致谢。

【问题讨论】:

  • 试试res.writeHeadnodejs.org/api/…
  • 也许 Android 浏览器正在创建一个 VIEW 意图并且没有安装监听“application/octet-stream”mime-type 的应用程序?你要发送什么样的文件?用“application/pdf”试试同样的方法。
  • @hgoebi 很抱歉,我必须发送客户的数据,但我无法确定它是什么类型的数据......
  • @vinayr 很抱歉,它没有任何效果。

标签: android node.js browser header response


【解决方案1】:

终于找到了http头在android上不起作用的原因。

很抱歉我没有提到关键的东西。

实际上,我尝试使用 https 而不是 http 进行下载,因为我使用的是 没有有效 SSL 认证的测试服务器。

我可以忽略 PC 网络浏览器中的 SSL 认证,但 Android 除外。

这就是为什么Android网络浏览器无法读取标题的原因。

我已经将下载方式从https改为http,效果很好。

感谢所有关注和回复。

谢谢。

【讨论】:

猜你喜欢
  • 2018-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-26
  • 2011-10-17
  • 2018-03-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多