Русский текст в AJAX

flash-vkv

Новичок
я чтота не помню чтобы мне мешала проблема кодировки в аяксе
вроде MS 2 при XSLT немного врал (не уверен) , я к примеру некогда не пользуюсь
её устранения с помощью JS.
мне кажется что он всеже передает страницу не в ср-...
 

Crys

Двинутый новичок
У меня похожая проблема...
В общем, получаем XML вида:

PHP:
<?php
header ("Content-Type: application/xml; charset=windows-1251);
?>
<doc>
    <message>Текст в windows-1251</message>    
</doc>
Работает под FireFox, Opera, не работает в IE

PHP:
<?php
header ("Content-Type: application/xml; charset=windows-1251);
?>
<?xml version="1.0" encoding="windows-1251"?>
<doc>
    <message>Текст в windows-1251</message>
</doc>
Работает в IE, не работает в Opera, FireFox


Скрипт обработки:

Код:
.......................

xmlObj.onreadystatechange = function() {
   if (xmlObj.readyState == 4) {
      alert(xmlObj.responseText);
      var xmlDoc = xmlObj.responseXML;
      var doc = xmlDoc.getElementsByTagName("doc")[0]; //ОШИБКА ПРОИСХОДИТ (или начинается) ТУТ
//doc=undefined для FF, Opera и null для IE в случае ошибки
      var message = doc.getElementsByTagName("message")[0].childNodes[0].nodeValue;
   }
}
xmlObj.open ('GET', 'test?var='+var, true);
xmlObj.send (null);

.....................
Чьи баги, браузеров (тогда каких? где такое еще может быть?), мои (в чем?), ajax'а (только на запад расчитан?), Васи Пупкина?
 

flash-vkv

Новичок
попробуй заменить строку
header ("Content-Type: application/xml; charset=windows-1251);
на
header ("Content-type: application/xml");
не уверен что тебе поможет но в заголовке указание кодеровки нечем не поможет и не кчему, это если HTML будеш слать.

а на удачную загрузку что не проверяеш?
if (this.doc.readyState == 4) {
if (this.doc.status == 200) {
xmlDoc = this.doc.responseXML;
docxml = this.xsltProcessorLeft.transformToFragment(xmlDoc, document);
};
};
};

попробуй так
var doc = xmlDoc.firstChild.getElementsByTagName("doc")[0]; / / не проверял потому сам не уверен
а вобше замени строкой alert(xmlDoc.getElementsByTagName("doc")[0]);
и посмотри что у тебя там
 
Сверху