programing

jQuery가 gzip/deflate를 사용하도록 설정된 URL에 대해 AJAX를 강제로 호출할 수 있습니까?

lastmoon 2023. 8. 15. 11:25
반응형

jQuery가 gzip/deflate를 사용하도록 설정된 URL에 대해 AJAX를 강제로 호출할 수 있습니까?

저는 gzip/deflated 데이터를 출력할 수 있는 웹 서비스를 가지고 있습니다.저는 서비스가 raw JSON으로 응답하거나 wget과 curl을 사용하여 gzip'd JSON으로 응답하는 것을 확인했습니다.

저는 jQuery AJAX 호출을 사용하여 이 웹 서비스를 사용하고 싶습니다.

기본적으로 jQuery가 제공하는 $.ajax 호출은 웹 서버가 gzip 데이터로 응답하는 데 필요한 "Accept-Encoding: gzip" HTTP 요청 헤더를 추가하지 않습니다.

그러나 jQuery 고유의 메서드를 사용하여 헤더를 추가할 때는 다음과 같습니다.

$.ajax({url: 'http://foo.com/service.json',
        beforeSend: function(xhr) { 
            console.log('xhr set'); 
            xhr.setRequestHeader('Accept-Encoding', 'deflate') 
       } 
});

그러면 브라우저 콘솔에 다음 오류가 나타납니다.

Refused to set unsafe header "Accept-Encoding"

jQuery가 gzip/deflate를 사용하도록 설정된 URL에 대해 AJAX를 강제로 호출할 수 있습니까?

그렇지 않다면 jQuery의 단점입니까, 아니면 AJAX의 더 근본적인 단점입니까?

브라우저는 XHR 요청을 포함하여 수락-인코딩 헤더를 적절하게 자동으로 추가합니다.DOM/JS 수준에서는 이 작업을 수행할 필요가 없습니다.

언급URL : https://stackoverflow.com/questions/3778706/is-it-possible-to-force-jquery-to-make-ajax-calls-for-urls-with-gzip-deflate-ena

반응형