Пожалуйста, посмотрите мой код, где я пытаюсь сжать данные, используя промежуточное программное обеспечение connect.compress. Как я могу разобрать строку JSON в браузере, чтобы получить распакованные данные. Когда я пытаюсь поразить localhost: 2080, я получаю ошибку загрузки страницы.Ошибка загрузки веб-страницы при разборе JSON-строки
Клиентский код
var options = {
host: '127.0.0.1',
port: 2080,
path: "/",
headers:{
'accept-encoding': 'gzip'
}
};
var req = http.request(options, function(res) {
console.log('STATUS: ' + res.statusCode);
console.log('HEADERS: ' + JSON.stringify(res.headers));
var data = '';
res.on('data', function (chunk) {
data += chunk;
});
res.on('end', function (chunk) {
var data2 = JSON.parse(data);
console.log(data2.app_id);
});
});
код сервера
app = connect();
app.use(connect.compress(console.log("compressed data")))
app.use(connectDomain())
.use(connect.query())
.use(connectRoute(function (router) {
router.get('/', function (req, res) {
var acceptEncoding = req.headers['accept-encoding'];
if (acceptEncoding.match(/\bdeflate\b/)) {
res.setHeader('content-encoding', 'deflate');
} else if (acceptEncoding.match(/\bgzip\b/)) {
res.setHeader('content-encoding', 'gzip');
}
console.log(res._headers);
res.setHeader('Content-Type', 'application/json');
res.end('{"app_id": "A3000990"}');
})
}))
.use(function(err, req, res, next) {
res.end(err.message);
});
http.createServer(app).listen(2080);
Мы не можем контролировать браузер. Он либо отправляет заголовок Accept-encoding: gzip, deflate, либо нет. Таким образом, мы можем получить данные сжатия с помощью connect.compress().
Любая помощь будет очень полезно
Благодаря
все включено в браузере? Что такое сервер? – mindandmedia
Нет в Firefox его отображение Ошибка кодирования содержимого. В chrome и IE страница не может быть загружена. Но в консоли результаты ожидаются. – user87267867