繁体   English   中英

用php编码数据并用Javascript(ajax)解压缩

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM