收藏
回答

wx.request 返回的数据如果是gzip压缩的就会产生乱码怎么解决?

问题模块
API和组件

header: {

'content-type': 'application/json',

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

}

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


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


最后一次编辑于  2017-09-28  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

5 个回答

  • 矛 钝了
    矛 钝了
    2017-09-28

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


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

    2017-09-28
    赞同
    回复
  • Mr. ♥
    Mr. ♥
    2017-09-29

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


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

    Content-Encoding: gzip
    2017-09-29
    赞同
    回复
  • 矛 钝了
    矛 钝了
    2017-09-29

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

    2017-09-29
    赞同
    回复
  • Mr. ♥
    Mr. ♥
    2017-09-29

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


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

    2017-09-29
    赞同
    回复
  • 矛 钝了
    矛 钝了
    2017-10-22

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

    2017-10-22
    赞同
    回复