Supponendo che un server non possa rispondere alle richieste degli utenti. Tuttavia, uno sviluppatore web crea uno myfile.txt.gz
e lo memorizza allo http://www.mysite.com/myfile.txt.gz
.Come avere un browser gunzip un file di testo gziped scaricato Ajax?
È possibile avere il browser automaticamente gunzip questo file di testo compresso come parte della richiesta Ajax e memorizzare il risultato in un var
? Se sì, come?
Sono aperto ad altri algoritmi di compressione, se necessario.
Aggiornamento
Sto cercando di utilizzare il seguente JQuery Ajax chiamata:
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 + " !");
}
});
}
ma ottengo il seguente nel browser:
Tutte le idee?
Non sono sicuro, ma se si impostano le intestazioni su 'Content-type: text/plain' e' Content-encoding: gzip', potrebbe funzionare. Ecco come vengono spedite le pagine HTML con gzip. Probabilmente dovresti prima controllare l'intestazione 'Accept-Encoding'. –
Sto provando ma non sembra funzionare. Hai un esempio di codice operativo? – JVerstry
Tutto il codice che ho suggerito sarebbe sul lato server. Quale lingua lato server (se esiste) stai usando (conosco solo PHP)? Non dovresti fare nulla di speciale in JavaScript, basta fare una chiamata AJAX come faresti normalmente. Se il browser supporta gzip e il server invia l'intestazione Content-encoding, lo decomprimerà automagicamente. –