Решение проблем с ajax на nginx/apache в Internet Explorer (IE)


Часто вижу сообщения о проблемах nginx и ajax в IE.

Конечно я не могу ручаться за каждый конкретный случай, но осмелюсь предположить, что проблема может быть связана с кодировкой, точнее с наименованием кодировки, которое передается в ответе веб-сервера. Я уже писал о похожей проблеме ранее (Cистемная ошибка: -1072896658). Ниже проведу небольшой ликбез с описанием необходимых настроек веб-серверов.

Итак, суть проблемы: неверное наименование кодировки UTF-8. Вы можете написать в настройках apache/nginx все что угодно (как правило UTF8 без дефиса), но IE ожидает название этой юникодной кодировки именно с дефисом: UTF-8. И никак иначе (любопытно что другие браузеры к этому более терпимы, а если учесть то, что девелоперы любят firefox, то, ручаюсь, эта ошибка попортила немало крови и нервов).

Для apache нам нужно проверить или добавить директиву AddDefaultCharset в виртуальный хост (или .htaccess, если доступа к вирутальному хосту не имеете):

<VirtualHost 127.0.0.1:80>
 ...
 <Directory /path/to/your/document/root>
 AddDefaultCharset UTF-8
 </Directory>
 ...
</VirtualHost>

Имейте в виду что директива может быть в наличии, но название кодировки в ней может быть написано неверно (UTF8 вместо UTF-8).

И если у вас неправильную кодировку дает nginx. Смотрим в документацию ngx_http_charset_module:

Директива charset. Для кодировок utf-8, windows-1251 и koi8-r для этого достаточно включить в конфигурацию файлы conf/koi-win, conf/koi-utf и conf/win-utf.

В принципе вы можете попробовать явно включить эту директиву в конфигурацию nginx (в директивы http, server, location, или if в location):

#context: http, server, location, if в location
charset     utf-8;

Также обращайте внимание на написание кодировки с дефисом.

P.S. Я использую nginx как прокси, поэтому с ним у меня подобной проблемы не было. А вот с apache, каюсь, была )

P.P.S. Недеюсь, этот небольшой ликбез будет полезен – в любом случае пишите отзыв, учтем, исправим )

This entry was posted in Профессиональное and tagged , , , . Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

Get Adobe Flash playerPlugin by wpburn.com wordpress themes