У меня есть простой веб-сайт с формой входа в систему с использованием веб-сокетов. Хотя он отлично работает с Firefox и Chrome, соединение не устанавливается и, следовательно, нет входа в систему с использованием IE 10 или 11. Я использовал Fiddler и заметил, что результат успешных подключений равен 101 (что находится в Chrome и Firefox), а в IE - 200. Кроме того, следующее сообщение:
SCRIPT12008: WebSocket Error: Incorrect HTTP response. Status code 200, OK
появляется в консоли IE.
Это заголовки IE, Chrome и FF:
GET / HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Accept-Language: de-DE
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)
Accept-Encoding: gzip, deflate
Host: test.server.com
DNT: 1
Connection: Keep-Alive
Pragma: no-cache
GET / HTTP/1.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: el,en-US;q=0.8,en;q=0.6
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36
Accept-Encoding: gzip,deflate,sdch
Host: test.server.com
Connection: keep-alive
Cache-Control: no-cache
Pragma: no-cache
Referer: http://test.kolibri.beckipc.io/
Accept-Language: el,en-US;q=0.8,en;q=0.6
GET / HTTP/1.1
Host: test.server.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
Как-то nginx не реагирует должным образом при использовании IE. Есть идеи?
Два браузерных движка из трех протестированных работают нормально. Заголовок IE - единственный, у которого коммуникационный заголовок Accept-Language ограничен de-DE. Вы случайно не обслуживаете одну версию, а IE решает, что она ему не нужна? В конце концов, IE сообщает не о проблеме, а код состояния «200 OK».
Позвольте мне перефразировать вышесказанное:
На веб-странице, содержащей вашу форму, определите язык как de-DE
Очистить кеш в IE
Загрузите новую форму, созданную на шаге 1, в IE.
Это должно сработать. (Если это не сработает, попробуйте загрузить исходную форму в IE после изменения языковых предпочтений в этом браузере с de-DE на en-US и посмотрите, что произойдет.) И еще одно: убедитесь, что у вас есть все последние обновления из Microsoft. Известно, что Microsoft регулярно исправляет ошибки. Удачи:-)