2018-04-17 Ajax接收gzip压缩数据

2018-04-18  本文已影响0人  胡諾

前台ajax接收经过gzip压缩后的数据时,需要接收到返回数据进入success的function并进行解压进而处理数据。
但是,由于返回数据乱码无法识别数据类型,ajax直接跳入error的function。

解决方法:

首先,ajax的dataType设置为text,即可进入success:


其次,对数据进行解压缩,压缩方法如下:


搞定,整体如下:


附上解压缩代码:

    function unzip(str){          
        // Convert binary string to character-number array  
        var charData = str.split('').map(function(x){return x.charCodeAt(0);});
      
        // Turn number array into byte-array  
        var binData = new Uint8Array(charData);
      
        // // unzip  
        var data = pako.inflate(binData);     
      
        // Convert gunzipped byteArray back to ascii string:  
        strData = String.fromCharCode.apply(null, new Uint16Array(data));
        return $.parseJSON(strData);
    }

本文作者:徐晋

<上一篇 目录 下一篇>
上一篇下一篇

猜你喜欢

热点阅读