Можно ли заставить jQuery делать AJAX-вызовы для URL-адресов с включенным gzip/deflate?
у меня есть веб-служба, которая готова выводить данные gzip / deflated. Я проверил, что служба будет отвечать raw 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?
1 ответов
браузеры автоматически добавляют заголовок accept-encoding по мере необходимости, в том числе по запросам XHR. Вам не нужно делать это на уровне DOM/JS.