使用angular的http get方法时,浏览器端没有gzip压缩json的自动解压缩

时间:2013-12-31 15:10:10

标签: javascript json angularjs gzip

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

$http.get('myfile.json').success(function(data) { ... }

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

请求标头似乎正确(Mac上为Chrome 31.0)(如herehere所述):

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

但是,我理解it should be,客户端浏览器不会自动解压缩内容。 data.length是〜700Kb,而不是原来未压缩的~3Mb。

虽然这个post表示需要手动完成,但我知道减压应该是自动且透明的。

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

1 个答案:

答案 0 :(得分:4)

您的内容类型不应为“ application / x-gzip *它应该保留: 的应用/ JSON

内容编码足以向浏览器说明内容已压缩。

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