2013-02-13 6 views
7

Предполагая сервер, на который не могут отвечать ответы на запросы пользователей. Тем не менее веб-разработчик создает myfile.txt.gz и сохраняет его в http://www.mysite.com/myfile.txt.gz.Как убрать браузер с помощью gziped текстового файла Ajax?

Возможно, браузер автоматически запустит этот сжатый текстовый файл как часть запроса Ajax и сохранит результат в var? Если да, то как?

Я открыт для других алгоритмов сжатия, если это необходимо.

Update

Я пытаюсь использовать следующий 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 + " !"); 
     } 

    }); 

} 

, но я получаю следующее в моем браузере:

enter image description here

Любые идеи?

+0

Я не уверен, но если вы установите заголовки на «Content-type: text/plain» и «Content-encoding: gzip», это может сработать. Вот как страницы HTML отправляются gzipped. Вероятно, вы должны сначала проверить заголовок «Accept-Encoding». –

+0

Я пытаюсь, но он не работает. Есть ли у вас пример операционного кода? – JVerstry

+0

Весь код, который я предложил, будет на стороне сервера. Какой серверный язык (если есть) вы используете (я знаю только PHP)? Вам не нужно делать что-то особенное в JavaScript, просто выполните вызов AJAX, как обычно. Если браузер поддерживает gzip, и сервер отправляет заголовок «Content-encoding», он автоматически распакует его. –

ответ

4

, позволяя браузеру разжать его Content-Encoding: gzip, вероятно, является лучшим. В случае, если это не работает для вашего сценария, существует множество реализаций LZW в javascript: https://gist.github.com/revolunet/843889

Возможно, вам придется попробовать различные реализации, я сам не проверял их.

+1

Я не контролирую кодирование контента на стороне сервера ... Как я могу получить двоичный контент из Ajax? – JVerstry