XMLHttpRequest with gzip

With the request module for node.js, it is very simple to configure a request that requests and correctly writes compressed data from the source:

var request = require('request');
var requestOptions = {
    url: 'http://whatever.com/getDataWithCompression',
    gzip: true  // <--- this is all that is required
};
request(
    requestOptions,
    function (error, response, data) {
        // do stuff with data (which is already decompressed)
    }
);

However, I have some js code embedded in an html document that should also make an HTTP request, so without the node.js module request, I use instead XMLHttpRequest:

var request = new XMLHttpRequest();
request.open('GET', 'http://whatever.com/getData', true);
request.onload = function() {
    // do stuff with request.responseText
};
request.send();

But, despite the many search queries, I can’t decide how to make a request XMLHttpRequestand unzip the gzip data. I would be grateful for any help.

+5
source share
2 answers

, , . , pako javascript (Javascript Links: ) , ..

<script type="text/javascript" src="pako.js"></script>

, JSON, :

var data;
var request = new XMLHttpRequest();
request.responseType = 'arraybuffer';
request.onload = function() {
  data = JSON.parse(pako.inflate(request.response, { to: 'string' }));
};
request.open('GET',"data.gzip");
request.send();

:

, XMLHttpRequest. , "arraybuffer", FileReader . , FileReader, .

0

Source: https://habr.com/ru/post/1610401/


All Articles