wx.request 返回的数据如果是gzip压缩的就会产生乱码怎么解决?
发布于 7 年前 作者 jiafang 8327 次浏览 来自 问答

header: {

‘content-type’: ‘application/json’,

‘Accept-Encoding’:‘identity’   想加这么一句在里面,但是报错

}

报错内容Refused to set unsafe header “Accept-Encoding

但是现在有不少网页都是gzip压缩的呀,有人遇到这个问题么?有人能解决吗?

5 回复

我希望服务端不要gzip,但是确实是我无法控制的,可是小程序目前无法识别gzip压缩的返回数据,只能显示乱码。郁闷。

小程序的本质上还是用的 WebView 的内核,也就说实际上是个 AJAX 请求。而 Accept-Encoding、Connection、Date 等等一系列请求头,是由浏览器决定是否发送的,而不能 JS 手动指定。

gzip 的话需要服务端在响应头加入

Content-Encoding: gzip

我完全明白你的意思,这个问题应该从服务端入手,从小程序这面是无解的。

服务端应在响应头加入 Content-Encoding: gzip,以便于客户端正确识别 gzip 内容;如果请求的地址并非自己可控,那么可以使用自己的服务端做一下中转处理。

谢谢2楼的回复,不过你可能没懂我的意思,我是现在将请求回来的数据为gzip压缩过的内容没有办法处理,想寻求一个解决方案。不然就是一堆乱码。因为我请求某个网页可是这个网页用了gzip压缩的。

每次登陆都要微信扫码好麻烦呀,微信那边不能关闭这个验证吗?或者通过密码验证呀。

难道就没有人遇到类似的问题?无人回答吗?微信的小程序团队也不能解决这个问题吗?

回到顶部