使用gzip的XMLHttpRequest

drm*_*wer 5 javascript xmlhttprequest request httprequest node.js

使用node.js 的请求模块,可以很容易地设置请求并从源中正确压缩压缩数据的请求:

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)
    }
);
Run Code Online (Sandbox Code Playgroud)

但是,我在html文档中嵌入了一些js代码,这些代码也需要发出http请求,所以没有request我使用的node.js 模块XMLHttpRequest:

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

但是,尽管有大量的谷歌搜索,我无法弄清楚如何发出XMLHttpRequest请求和解压缩gzip压缩数据.将不胜感激任何帮助.

Sha*_*oor 0

它可能与浏览器相关:http://www.w3c-test.org/XMLHttpRequest/response-data-gzip.htm例如,此测试在 IE 上失败。您必须使用此库手动压缩响应,例如: https: //github.com/nodeca/pako