2013-02-13 2 views
7

사용자 요청에 대한 응답을 압축 할 수없는 서버를 가정합니다. 그럼에도 불구하고 웹 개발자는 myfile.txt.gz을 생성하여 http://www.mysite.com/myfile.txt.gz에 저장합니다.브라우저 gunzip으로 Ajax에서 gziped 텍스트 파일을 가져 오는 방법은 무엇입니까?

브라우저가 Ajax 요청의 일부로이 압축 텍스트 파일을 자동으로 압축하여 결과를 var에 저장할 수 있습니까? 그렇다면 어떻게?

필요한 경우 다른 압축 알고리즘을 사용할 수 있습니다.

나는 다음과 같은 JQuery와 아약스 호출을 사용하려고

업데이트 :

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 페이지가 gzip으로 보내지는 방법입니다. 먼저 Accept-Encoding 헤더를 확인해야합니다. –

+0

노력하고 있지만 작동하지 않는 것 같습니다. 운영 코드 예제가 있습니까? – JVerstry

+0

내가 제안한 모든 코드는 서버 측에 있습니다. 어떤 서버 측 언어 (있는 경우)를 사용하고 있습니까 (필자는 PHP 만 알고 있습니다)? 자바 스크립트에서 특별한 일을해서는 안되며 평상시처럼 AJAX 호출을하면됩니다. 브라우저가 gzip을 지원하고 서버가'Content-encoding' 헤더를 보내면 자동으로 압축이 풀립니다. –

답변

4

브라우저에서 Content-Encoding: gzip으로 압축을 풀면 아마도 최고입니다. 당신의 시나리오에서 작동하지 않는 경우, 많은 LZW 구현이 자바 스크립트처럼 있습니다 : https://gist.github.com/revolunet/843889

당신은 다른 구현을 시도해야 할 수도 있습니다.

+1

서버 측에서 컨텐츠 인코딩을 제어하지 않습니다 ... 어떻게하면 Ajax에서 2 진 컨텐츠를 검색 할 수 있습니까? – JVerstry