【问题标题】:Encode data in php and uncompress in Javascript (ajax)在 php 中编码数据并在 Javascript (ajax) 中解压缩
【发布时间】:2019-02-11 13:40:09
【问题描述】:

为了减小我的 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>

但是,我无法正确获取数据(仍然压缩)。

你能告诉我我做错了什么吗?

谢谢

【问题讨论】:

    标签: javascript php apache compression


    【解决方案1】:

    要为 API 使用 gzip,无需在应用程序级别实现它(在 PHP 中压缩数据并在 JS 中解压缩)。在这种情况下,数据应该由 Web 服务器 (Apache) 压缩并由客户端 (浏览器) 解压缩。这个过程是透明的,独立于 PHP 或 JS 代码。

    确保将 Web 服务器配置为对您的 API 端点使用压缩。要对其进行测试,请运行 curl -I -H 'Accept-Encoding: gzip,deflate' https://your.domain/api/endpoint/name 或在浏览器开发工具中检查请求(在 Network 选项卡下)。

    如果响应中有content-encoding: gzip 标头,则表示服务器使用gzip 进行压缩。

    【讨论】:

      猜你喜欢
      • 2011-01-21
      • 2019-06-15
      • 1970-01-01
      • 1970-01-01
      • 2019-02-10
      • 2012-08-15
      • 2014-01-07
      • 2020-11-11
      • 1970-01-01
      相关资源
      最近更新 更多