首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用php编码数据,用Javascript解压(ajax)

用php编码数据,用Javascript解压(ajax)
EN

Stack Overflow用户
提问于 2019-02-11 21:40:10
回答 1查看 430关注 0票数 1

为了减小我的json文件的大小,我想压缩它。因此,我正在尝试压缩从php服务器发送的json数据文件:

代码语言:javascript
运行
复制
header('Content-Encoding: gzip'); 
$output = gzencode(json_encode($data));     
echo $output;

然后,在javascript中解压缩它(ajax方法):

代码语言:javascript
运行
复制
$.ajax({
    url: url,
    type: "GET",
    headers : {'Accept-Encoding': 'gzip '},
    async: true,
    success: function (data) {
        console.log("sucess !!");
        console.log(data);
        ... 
    )};

我还修改了apache服务器,以便自动解压缩:

代码语言:javascript
运行
复制
LoadModule deflate_module modules/mod_deflate.so

和:

代码语言:javascript
运行
复制
 <IfModule mod_headers.c>
  <FilesMatch ".(js|css|xml|gz|txt|json)$">
      Header append Vary: Accept-Encoding
  </FilesMatch>

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

你能告诉我我哪里做错了吗?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-11 22:14:19

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

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

如果响应中有content-encoding: gzip头,这意味着服务器使用gzip进行压缩。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54631846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档