У меня есть веб-сервис, который готов выводить данные gzip / deflated. Я проверил, что сервис будет отвечать необработанным JSON или gzip'd JSON, используя wget и curl.
Я хочу использовать этот веб-сервис с помощью вызова jQuery AJAX.
По умолчанию вызов $ .ajax, предоставляемый jQuery, не добавляет заголовок HTTP-запроса «Accept-Encoding: gzip», необходимый веб-серверу для ответа данными gzipped.
Однако, когда я использую собственные методы 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?