Javascript 如何让浏览器压缩Ajax获取的gzip文本文件?
假设服务器无法压缩对用户请求的响应。然而,web开发人员创建了一个Javascript 如何让浏览器压缩Ajax获取的gzip文本文件?,javascript,ajax,text-files,gunzip,Javascript,Ajax,Text Files,Gunzip,假设服务器无法压缩对用户请求的响应。然而,web开发人员创建了一个myfile.txt.gz,并将其存储在http://www.mysite.com/myfile.txt.gz 作为Ajax请求的一部分,浏览器可以自动压缩此压缩文本文件,并将结果存储在var?如果是,如何进行 如有必要,我愿意使用其他压缩算法 更新 我尝试使用以下JQuery Ajax调用: var fetch = function() { $.ajax({ type: 'GET', u
myfile.txt.gz
,并将其存储在http://www.mysite.com/myfile.txt.gz
作为Ajax请求的一部分,浏览器可以自动压缩此压缩文本文件,并将结果存储在var
?如果是,如何进行
如有必要,我愿意使用其他压缩算法
更新
我尝试使用以下JQuery Ajax调用:
var fetch = function() {
$.ajax({
type: 'GET',
url: "./data.txt.gz",
headers: { "Accept-Encoding" : "gzip" },
dataType: "text",
async: true,
success: function(result) {
$("#midEnglob").text(result);
},
error: function(jqXHR, textStatus, errorThrown) {
alert("Issue: "
+ textStatus + " "
+ errorThrown + " !");
}
});
}
但我的浏览器中有以下内容:
有什么想法吗?让浏览器用解压来解压可能是最好的。如果它不适用于您的场景,在javascript中有许多LZW实现,如:
您可能需要尝试不同的实现,我自己没有检查任何实现。我不确定,但是如果您将标题设置为
内容类型:text/plain
和内容编码:gzip
,则可能会起作用。这就是HTML页面发送到Gzip的方式。您可能应该首先检查Accept Encoding
标题。我正在尝试,但似乎不起作用。您有操作代码示例吗?我建议的所有代码都在服务器端。您正在使用哪种服务器端语言(如果有的话)(我只知道PHP)?您不必在JavaScript中执行任何特殊操作,只需像平常一样执行AJAX调用即可。如果浏览器支持gzip,并且服务器发送内容编码
头,它将自动解压缩。好的,问题是我无法控制服务器,无法保证正确的内容编码头。有没有办法告诉Ajax返回的内容是二进制的?如果你不能控制服务器端,那么你可能必须使用gzip(Google around)的JavaScript实现来解码。我不控制服务器端的内容编码。。。如何从Ajax检索二进制内容?