我有一个有效载荷较大的POST请求。我试图在向服务器发出请求之前用pako缩小它,以使其更小。但是,压缩版本的有效负载大小与未压缩版本的有效负载大小相同。我想念什么吗?
我要发送的选项的options.body
是JSON.stringify(largeJsonObject)
,长度超过1024。当我在“网络”标签中查看时,可以看到我的请求已发送,并且内容已编码,但是请求的大小与未压缩时的大小相同
async fetch(path, options) {
const headers = {
Accept: 'application/json',
'Content-Type': 'application/json',
}
if (
options.method === 'POST' &&
options.body &&
options.body.length > 1024
) {
headers['Content-Encoding'] = 'deflate'
options.body = pako.deflate(options.body)
}
if (this.loggedIn()) {
headers['Authorization'] = 'Bearer ' + this.getToken()
if (this.willTokenExpireSoon()) {
await this.refreshToken()
}
}
return fetch(process.env.REACT_APP_API_HOST + path, {
headers,
...options,
}).then(this._checkStatus)
}
答案 0 :(得分:0)
这是PICNIC错误(椅子不在电脑上的问题)。我的服务器正在处理POST请求,保存了一些数据,然后未压缩将对象返回给客户端。这就是为什么“网络”选项卡显示请求大小相同的原因-请求中的有效负载较小,但响应正文仍然很大
为解决此问题,我还在服务器中添加了pako.deflate