У меня есть веб-служба, которая готова выводить данные 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?