2012-05-14 5 views
0

가능한 중복 :
Is it possible to force jQuery to make AJAX calls for URLs with gzip/deflate enabled?

내가 JSONP와 함께 두 개의 서로 다른 도메인에서거야. Domain1은 Domain2에 몇 가지 json 데이터를 요청합니다. 콜백 매개 변수가있는 $ .getJSON을 사용하면 큰 문제없이 작동합니다.

도메인 2는 gzipped json 데이터를 제공 할 수도 있습니다.

이 기능을 사용하고 싶습니다만 jQuery의 $ .getJSON을 사용하여 Domain1에 요청하는 방법을 모르겠습니다.

가능합니다. 그렇다면 나에게 예제 (또는 다른 해결 방법)를 제공해주세요.

감사합니다.

+1

일반적으로 zip을 지정하는 'Accept' 헤더가있는 경우 브라우저에서이를 투명하게 처리합니다. –

+0

@ Dave-Newton 통화에 헤더를 어떻게 추가합니까? – Nik

+0

@PedroFerreira 그것이 맞는지 아닌지, 크로스 도메인은 내가 누군가가 설명 할 수 있기를 바랬던 내 문제의 일부입니다. 아약스 호출과 jsonp 호출이 완전히 동일한 것은 아닙니다. – Nik

답변

1

http 트래픽을 gzipping하는 것은 콘텐츠 (서버의 경우 스크립트)와 함께 작동하는 실제 프로세스에 투명한 서버 옵션입니다. 브라우저는 gzipping을 처리하지만, 연결의 양면에서 지원하는 경우에만 작동합니다 (요청 헤더에서 전달됨). 또한 서버 측에서 활성화해야합니다 (예 : 아파치에서 mod_deflate 사용)

domain2의 서버가 gzipping을 지원한다고 말하면 올바르게 구성한 경우 "gzippable"인 모든 트래픽이 자동으로 gzip됩니다. 귀하의 부분에 대한 추가 작업은 필요하지 않습니다.

yrou 트래픽이 gzipped가되는지 알고 싶다면 jsonp 호출의 응답 헤더를 살펴보십시오. 그들은 gzip이 사용된다고 말해야합니다. 예를 들어 크롬에서이 작업을 수행 할 수 있습니다.

+0

감사합니다. 당신 말이 맞습니다. 브라우저가 이미 gzipped 데이터를 처리 한 후에 응답 크기를 확인했습니다. 응답 헤더를 확인한 후에는 gzip으로 압축 된 것이고 크기가 훨씬 작음을 명확하게 보여줍니다. 나는 단지 신중하게 보지 않았다. .. 나쁘다. – Nik

+0

OK, 문제 없습니다. 네가 알아 냈다고 좋았어. – koenpeters

0

브라우저에이 경우 어떻게해야하는지 알 수있는 방법이 없다고 생각합니다. 이것이 JSONP 요청 인 경우 브라우저가 어떤 헤더를 전송할지 결정합니다. JSONP 요청은 또 다른 <script> 태그입니다.

관련 문제