Ajax и IE6: Системная ошибка -1072896658 и как ее исправить
Ошибка эта возникает, когда сервер передает IE неизвестную
кодировку (utf8 вместо utf-8, windows1251 вместо windows-1251 и тп). То есть, возможна ситуация, когда на одном сервере ваш
скрипт будет работать нормально, а на другом - возникнет подобная
ошибка.
Как исправить? Либо - поправить настройки сервера (Apache, php, htaccess) или - явно указать кодировку в скрипте.
Достаточно в самом начале серверного скрипта Ajax принудительно указать кодировку:
header('Content-type: text/html; charset=utf-8');
и проблема решится. В связи с тем, что вы заранее не можете знать, на каком сервере ваш скрипт будет работать в будущем, считаю, что прописывать этот заголовок нужно обязательно!
PS вот нашел еще несколько вариантов решения для библиотеки sajax здесь (описанный выше способ с header является универсальным):
1)
при перед созданием объекта xajax задать константу
XAJAX_DEFAULT_CHAR_ENCODING с кодировкой, которая будет выдаваться по
умолчанию во всех заголовках, выдаваемых через xajaxResponse:
define ('XAJAX_DEFAULT_CHAR_ENCODING', 'windows-1251');
2) задать кодировку в самом объекте xajaxResponse перед его возвращением:
$responseObject->setCharacterEncoding('windows-1251');
3) выдавать явно кодировку в http-заголовках ответа:
header('Content-Type: text/html; charset=windows-1251'); - с последним поспорю :) Надо переходить на utf (denvor)
[[SyntaxHl]]