Делал я тут как-то пое-чего на аяксе, передавал данные в
JSON
'е, кодировка всего на сайтине —
cp1251
. Дабы не изобретать велосипед использовал
jQuery
.
Все отлично работало пока я не решил протестить все в
IE
.
IE
у меня седьмой версии, в других не проверял пока, но по-моему там та же фича.
Так вот, ничего не работало безовсяких ошибок (видимых). Покопавшись выяснил что
jQuery
возвращает
parsererror
. Покопавшись глубже выяснил что транспорт выпадает с эксепшеном при доступе к полю
responseText
а поле
responseXML
содержит пустой документ (что естественно, данные передаются текстом).
Поработав лобзиком и гуглем с полчаса методом тыка выяснил что:
- ежели кодировка с заголовках стоит не
utf-8
IE
отказывается работать абсолютно;
тип контента application/ajax
и application/x-javascript
тоже не рулят.
В общем в конце концов стал выдавать заголовок Content-type: text/plain; charset=utf-8
и перекодировать все в utf-8
(благо с iconv
это вышло тремя строчками).
Нет, я конечно читал что IE
не дружит с виндовой же кодировкой cp1251
но пока разобрался ;)
Люди! Не повторяйте чужих ошибок :)
UPD
Мда, посыпаю голову пеплом. Оказалось, что все довольно неплохо исправляется заменой кодировки cp1251
на windows-1251
:) Спасибо за совет.