[英]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.