Можно ли заставить jQuery выполнять вызовы AJAX для URL-адресов с включенным gzip / deflate?

У меня есть веб-служба, которая может выводить данные в формате gzip / deflated. Я проверил, что служба ответит необработанным JSON или gzip-JSON с использованием wget и curl.

Я хочу использовать эту веб-службу с помощью вызова jQuery AJAX.

По умолчанию вызов $ .ajax, предоставляемый jQuery, не добавляет заголовок HTTP-запроса Accept-Encoding: gzip, необходимый для веб-сервера для ответа сжатыми данными.

Однако, когда я использую собственные методы 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 выполнять вызовы AJAX для URL-адресов с включенным gzip / deflate?

Если нет, то это недостаток jQuery или что-то более фундаментальное с AJAX?

22
задан Lee 23 September 2010 в 13:14
поделиться