IE 9 не принимает сжатые данные AJAX

У меня есть сервер JSONP node.js, который возвращает данные для веб-страницы. Страница отправляет AJAX-запросы к серверу Node и возвращает код JSONP.

Это отлично работает во всех браузерах, пока я не включу сжатие. Если я возвращаю ответ AJAX в формате deflate или gzip, он работает для всех, кроме IE 9; который не будет декодировать файл. IE просто показывает возвращающееся пустое тело, без ошибок, без вывода на консоль.

Я удостоверился, что запрос проходит и что правильные данные возвращаются клиентам IE, IE просто не примет их. Вот заголовки ответов, которые отправляются всем клиентам:

 Access-Control-Allow-Origin:*
 Connection:keep-alive
 Content-Encoding:deflate
 Content-Length:31203
 Content-Type:application/javascript; charset=UTF-8
 X-Content-Type-Options:nosniff

Я должен добавить - эти заголовки появляются в других браузерах, но IE не показывает заголовок "Content-Encoding:". Я думаю, что это может быть нормальным, потому что я заметил такое же поведение с веб-сайтами, на которых включено сжатие и которые работают в IE. IBM Например, .com — Chrome показывает кодировку контента, а IE — нет.

Значит, IE не поддерживает сжатие, а другие серверы его обнаруживают? Кто-нибудь знает, почему IE отклоняет эти данные?

Ваше здоровье,

белый атом


person whiteatom    schedule 28.05.2012    source источник


Ответы (1)


Apache может быть настроен на прослушивание IE и использование HTTP 1.0 вместо HTTP 1.1. Если сайт использует HTTPS, IIS не разрешает сжатие. Также может помочь связанный вопрос.

person Paul Sweatte    schedule 11.08.2012