9

我正试图缩小我的 AJAX 调用中发生的一些奇怪之处。我的 PHP 脚本一开始就有这个:

ob_start("ob_gzhandler");

适用于 HTML。但是用 application/json 数据做这件事有什么问题吗?任何人都知道的任何浏览器问题?

4

4 回答 4

7

我不这么认为...我以前使用过存储为 gzip 压缩 JSON 的静态文件,并且它在 AJAX 上运行良好。

编辑:我检查了我的 php 脚本,我做的唯一特别的事情就是包含这些标题:

Content-Encoding: gzip
Content-Type: text/plain

如果我没记错的话,每当我尝试将 Content-Type 更改为指示 JSON 的内容时,客户端都会遇到问题。

于 2009-03-18T13:35:17.377 回答
3

一些较旧的浏览器,例如某些版本的 IE6,会破坏 gzip 压缩的内容,尤其是 js 内容。

只需检查您的服务器是否发送了正确的内容编码标头,即

Content-Encoding: gzip

您还应该在发送 gzip 压缩内容之前检查浏览器发送的标头是否有正确的接受编码标头...也就是说,

Accept-Encoding: gzip,deflate
于 2009-03-18T13:38:01.457 回答
2

只要浏览器gzipAccept-Encoding请求标头中指定,您就可以提供 gzip 压缩的内容。在这种情况下,JSON 和 HTML 之间没有区别,也不会引起任何问题。

于 2009-03-18T13:36:15.470 回答
1

我不会在 PHP 中启用压缩,而是在 Apache 中启用压缩(使用 mod_deflate),这样您就可以检查各种不兼容的浏览器,并且只为接受并正确处理它的浏览器发送压缩数据。

http://httpd.apache.org/docs/2.0/mod/mod_deflate.html

于 2009-03-18T19:47:36.357 回答