Javascript 浏览器';使用角度'时的s侧;s的http get方法

Javascript 浏览器';使用角度'时的s侧;s的http get方法,javascript,json,angularjs,gzip,Javascript,Json,Angularjs,Gzip,我正在尝试使用angular(v1.2.6)加载json文件: 这很好,除非我在服务器上创建文件的(静态)压缩版本,并尝试加载“myfile.json.gz”(以减少加载时间) 请求头看起来是正确的(Mac上的Chrome 31.0)(如上所述和所述): 而响应头包含: Connection: close Accept-Ranges: bytes Content-Length: 702468 Content-Type: application/x-gzip Content-Encoding: g

我正在尝试使用angular(v1.2.6)加载json文件:

这很好,除非我在服务器上创建文件的(静态)压缩版本,并尝试加载“myfile.json.gz”(以减少加载时间)

请求头看起来是正确的(Mac上的Chrome 31.0)(如上所述和所述):

而响应头包含:

Connection: close
Accept-Ranges: bytes
Content-Length: 702468
Content-Type: application/x-gzip
Content-Encoding: gzip
但是,据我所知,客户端浏览器不会自动解压缩内容<代码>数据。长度为~700Kb,而不是原来未压缩的~3Mb

虽然这一条建议它需要手动完成,但我理解解压应该是自动和透明的


我的问题是,它应该自动解压缩吗?为什么这里不是这样呢?

您的内容类型不应该是“application/x-gzip*,应该是: 应用程序/json

内容编码足以告诉浏览器内容已压缩

您正在运行哪个HTTP服务器?
您应该对其进行配置,以便返回正确的mime类型,而不考虑.gz扩展名。

非常感谢您为我指明了正确的方向,我成功地使其工作。我的生产服务器是一个经过修改的Apache,我无法控制它。它允许使用
.htaccess
文件进行有限的配置,并添加:
add将gzip.jsongz AddType application/json.jsongz
编码到正确的文件夹中就可以了(不支持像
.json.gz
这样的复杂扩展,因此这个自定义的
.jsongz
)。如果可以使用
重写规则
,则可以进行更干净的配置,当客户端支持压缩版本时,该配置将自动发送压缩版本。
Accept: application/json, text/plain, */*
Accept-Encoding: gzip,deflate,sdch
Connection: close
Accept-Ranges: bytes
Content-Length: 702468
Content-Type: application/x-gzip
Content-Encoding: gzip