![](/img/trans.png)
[英]How can I send compressed (gzip) JSON as response to an Ajax Request, from Java?
[英]ajax send request with encoding gzip is not working
使用编码gzip(iis7)的Ajax发送请求在下面是不行的是发送请求的代码可以帮助我在我的代码中有什么问题。
提前致谢
function sendRequest(url, callback, postData)
{
var req = createXMLHTTPObject();
if (!req) {
return;
}
var method = (postData) ? "POST" : "GET";
req.open(method, "xml/" + url, true);
req.setRequestHeader('User-Agent', 'XMLHTTP/1.0');
if (postData) {
req.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
req.setRequestHeader("Content-Encoding", "gzip");
}
req.onreadystatechange = function() {
}
req.send(postData);
}
考虑到安全性,浏览器不允许您覆盖某些标头,包括“Content-Encoding”。
透明地请求高度压缩XMLHttpRequest的一种方法是使用HTTP / 2(例如,通过CloudFlare为您的网站提供服务)。
使用HTTP / 2时,虽然HTTP标头没有说Content-Encoding: gzip
但底层HTTP / 2协议会压缩所有内容。
它也比gzip压缩得更好,因为:
您可以通过以下方式查看您的服务器是否正在使用HTTP / 2:
Headers Preview Response Timing
) Protocol
h2
而不是http/1.1
我不建议使用JavaScript压缩库,因为这会导致速度减慢和效率低下。
问题似乎与标题无关,而是与压缩有关。
你似乎没有压缩你的postData。
如果postData已经压缩,则无需尝试手动设置内容编码。
如果不是,请让浏览器与服务器协商传输编码(这是协议的一部分并自动完成,服务器说是否接受它,但我认为很少这样)或者(如果你真的需要) to)自己编码。 这个问题表明了一个压缩browseride的库: Gzip的JavaScript实现
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.