假設服務器不能壓縮對用戶請求的響應。網絡開發人員仍然創建一個myfile.txt.gz
並將其存儲在http://www.mysite.com/myfile.txt.gz
。如何讓瀏覽器gunzip獲取一個Ajax獲取的gziped文本文件?
瀏覽器可以自動將此壓縮文本文件作爲Ajax請求的一部分進行gunzip並將結果存儲在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 + " !");
}
});
}
,但我得到了我的瀏覽器中執行以下操作:
任何想法?
我不確定,但是如果您將標頭設置爲「Content-type:text/plain」和「Content-encoding:gzip」,它可能會起作用。這就是HTML頁面被如何發送的方式。您應該先檢查Accept-Encoding標頭。 – 2013-02-13 16:50:30
我在嘗試,但似乎沒有工作。你有一個操作代碼的例子嗎? – JVerstry 2013-02-13 17:52:18
我建議的所有代碼都在服務器端。你使用什麼服務器端語言(如果有的話)(我只知道PHP)?您不必在JavaScript中做任何特殊的事情,只需像通常那樣進行AJAX調用即可。如果瀏覽器支持gzip,並且服務器發送「Content-encoding」標題,它將自動將其解壓縮。 – 2013-02-13 18:01:42