【问题标题】:Error while unzipping JSON file (Firefox)解压 JSON 文件时出错 (Firefox)
【发布时间】:2018-02-16 21:40:43
【问题描述】:

在我的 Node.js 应用程序中,我有一个路由,我从数据库 (Postgres) 获取大量 JSON 数据并以压缩格式在响应中发送它。我正在使用Zlib 模块来gzip 这个数据。我在发送响应之前设置Content-Type: application/gzipContent-Encoding: gzip。现在所有这些设置都适用于 Chrome 和 Safari 浏览器(成功解压缩数据),但由于某种原因,这在 Firefox 中不起作用。请求头包含Accept-Encoding: gzip, deflate

在浏览器(Firefox)控制台中,我看到以下错误

Attempt to set a forbidden header was denied: Accept-Encoding

SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data

谁能指导我这是什么问题,我该如何解决?谢谢!

【问题讨论】:

    标签: javascript angularjs json node.js firefox


    【解决方案1】:

    好的,我会用对我有用的方法来回答我的问题。

    在服务器端,我改变了压缩数据的方式。我正在使用Zlib 模块的deflate 方法而不是gzip。还使用这些值更改了响应标头。

    Content-Encoding: deflateContent-Type: application/deflate

    我仍然不确定为什么gzip 不起作用(或者至少对我不起作用),但由于时间限制,我现在选择deflate。 另外gzipdeflate 使用相同的压缩算法,deflate 编码和解码速度更快。我希望这会有所帮助,如果我在任何地方错了,请纠正我。谢谢!

    【讨论】:

      【解决方案2】:

      在现代浏览器中,根据https://developer.mozilla.org/en-US/docs/Web/API/Headers

      出于安全原因,某些标头只能由用户代理控制。这些标头包括禁止标头名称和禁止响应标头名称。

      Forbidden header names 包含“接受编码”。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-10
        • 1970-01-01
        相关资源
        最近更新 更多