[英]Encode data in php and uncompress in Javascript (ajax)
为了减小json文件的大小,我想将其压缩。 因此,我试图压缩从php服务器发送的json数据文件:
header('Content-Encoding: gzip');
$output = gzencode(json_encode($data));
echo $output;
然后,用javascript(ajax方法)将其解压缩:
$.ajax({
url: url,
type: "GET",
headers : {'Accept-Encoding': 'gzip '},
async: true,
success: function (data) {
console.log("sucess !!");
console.log(data);
...
)};
我还修改了apache服务器以自动解压缩它:
LoadModule deflate_module modules/mod_deflate.so
和:
<IfModule mod_headers.c>
<FilesMatch ".(js|css|xml|gz|txt|json)$">
Header append Vary: Accept-Encoding
</FilesMatch>
但是,我无法正确获取数据(仍然压缩)。
你能让我知道我做错了吗?
谢谢
要将gzip用于API,无需在应用程序级别上实现(在PHP中压缩数据并在JS中解压缩)。 在这种情况下,数据应由Web服务器(Apache)压缩,并由客户端(浏览器)解压缩。 此过程是透明的,并且独立于PHP或JS代码。
确保将Web服务器配置为对API端点使用压缩。 要测试它,请运行curl -I -H 'Accept-Encoding: gzip,deflate' https://your.domain/api/endpoint/name
或在浏览器devtools中(在“网络”选项卡下)检查请求。
如果响应中包含content-encoding: gzip
标头,则表示服务器使用gzip进行压缩。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.