1

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

Это прекрасно работает во всех браузерах, пока я не включу сжатие. Если я верну ответ 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 отвергает эти данные?

Cheers,

whiteatom

ответ

0

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