javascript - 强制浏览器将 XHR 响应解释为 gzip

标签 javascript json ajax gzip

我正在编写一个仅限客户端的 JavaScript 应用程序,它下载(通过 XHR)相对较大的 JSON 数据集以供显示。我想提前对这些数据集进行 gzip 压缩以节省空间和带宽(例如 mydata.json.gz)。

不幸的是,我无法控制服务器配置,它会为我的 .json.gz 文件发送 Content-Type: application/x-gzip header ,而不是正确的 Content-Encoding: gzipContent-Type: application/json 对。因此,我的应用程序接收的是原始 gzip 压缩数据,而不是我可以传递给 JSON.parse() 的数据。

我知道一些纯 JavaScript Gzip 实现(例如 pako )大概可以完成工作,但是有什么方法可以欺骗浏览器为我解码它而不需要其他方式不必要的 45KB 库?

最佳答案

I'm aware of a few pure-JavaScript Gzip implementations (e.g. pako) that could presumably get the job done

使用其中之一

but is there any way to trick the browser into decoding it for me that won't require an otherwise unnecessary 45KB library?

没有。

服务器说“这是一个 gzip 文件”,而不是“这是一个使用 gzip 编码传输的 JSON 文件”。

您必须更改 HTTP 响应 header 才能让浏览器对其进行透明解码。

关于javascript - 强制浏览器将 XHR 响应解释为 gzip,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36611784/

相关文章:

php - JQuery jSignature 获取和发布生成的图像

javascript - 循环遍历每个 JSON 响应返回 "[Object Object]"

javascript - Javascript 对象之间的通知

基于 Java 的 JSON 操作

javascript - 计算 JSON 中的值并将其转换为数字形式

javascript - php 脚本中 json 返回值的 ajax jquery 错误

javascript - 一次播放一个 HTML 音频元素

javascript - amphtml 标记显示错误 "Referenced AMP URL is not an AMP"

javascript - 在两个 Redux Reducers/State 之间共享数据

ios - 用两个字符串过滤字典数组