我正在尝试使用 angular (v1.2.6) 加载一个 json 文件:
$http.get('myfile.json').success(function(data) { ... }
这工作正常,除非我在服务器上创建文件的(静态)压缩版本,并尝试加载“myfile.json.gz”(以减少加载时间)。
请求 header 似乎正确(Mac 上的 Chrome 31.0)(如 here 和 here 所述):
Accept: application/json, text/plain, */*
Accept-Encoding: gzip,deflate,sdch
而响应 header 包含:
Connection: close
Accept-Ranges: bytes
Content-Length: 702468
Content-Type: application/x-gzip
Content-Encoding: gzip
但是,内容不会被客户端浏览器自动解压,据我了解it should be . data.length
是 ~700Kb 而不是原始未压缩的 ~3Mb。
虽然这一个post建议它需要手动完成,我理解解压缩应该是自动和透明的。
我的问题是,是否应该自动解压?为什么这里不是这种情况?
最佳答案
你的内容类型不应该是“application/x-gzip* 它应该保留: 应用程序/json
内容编码足以告诉浏览器内容已压缩。
您正在运行什么 HTTP 服务器? 您应该配置它以返回正确的 MIME 类型,而不考虑 .gz 扩展名。
关于javascript - 使用 angular 的 http get 方法时,浏览器端不会自动解压 gzipped json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20859246/