解压缩JSON文件时出错(Firefox)

时间:2017-09-08 03:58:37

标签: javascript angularjs json node.js firefox

在我的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

有人可以指导我这个问题是什么,我该如何解决?谢谢!

2 个答案:

答案 0 :(得分:0)

好的,我会用适合我的方式回答我的问题。

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

Content-Encoding: deflateContent-Type: application/deflate

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

答案 1 :(得分:0)

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

  

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

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