Код
<?xml version="1.0" ?>
<response>
<item1>
2007-06-14 23:46:42 [MRE] - 1
</item1>
<item1>
2007-06-14 23:47:34 [MRE] - 2
</item1>
<item1>
2007-06-14 23:47:48 [MRE] - 3
</item1>
<item1>
2007-06-15 01:07:13 [MRE] - 4
</item1>
</response>
<response>
<item1>
2007-06-14 23:46:42 [MRE] - 1
</item1>
<item1>
2007-06-14 23:47:34 [MRE] - 2
</item1>
<item1>
2007-06-14 23:47:48 [MRE] - 3
</item1>
<item1>
2007-06-15 01:07:13 [MRE] - 4
</item1>
</response>
Затем Java-функция ее обрабатывает:
Код
function chat()
{
var chat,chat_text,itemArray,html="";
if (request.readyState == 4)
{
if (request.status == 200)
{
try
{
chat = delNode("chat");
alert(request.responseText);
var xmlResponse = request.responseXML;
var xmlRoot = xmlResponse.documentElement;
itemArray = xmlRoot.getElementsByTagName("item1");
for (var i=0; i<itemArray.length; i++)
html += itemArray.item(i).firstChild.data;
chat_text = document.createTextNode(html);
chat.appendChild(chat_text);
}
catch(e)
{
alert("Ошибка чтения ответа: " + e.toString());
}
}
else
alert("Возникли проблемы во время получения данных: \n" + request.statusText);
}
}
{
var chat,chat_text,itemArray,html="";
if (request.readyState == 4)
{
if (request.status == 200)
{
try
{
chat = delNode("chat");
alert(request.responseText);
var xmlResponse = request.responseXML;
var xmlRoot = xmlResponse.documentElement;
itemArray = xmlRoot.getElementsByTagName("item1");
for (var i=0; i<itemArray.length; i++)
html += itemArray.item(i).firstChild.data;
chat_text = document.createTextNode(html);
chat.appendChild(chat_text);
}
catch(e)
{
alert("Ошибка чтения ответа: " + e.toString());
}
}
else
alert("Возникли проблемы во время получения данных: \n" + request.statusText);
}
}
В Opera все работает отлично, а в IE6+ вываливается alert по обрабатываемому исключению:
Ошибка чтения ответа: Object Error
Вылетает на строчке itemArray = xmlRoot.getElementsByTagName("item1");
Пробовал вместо itemArray = xmlRoot.getElementsByTagName("item1");
написать itemArray = xmlResponse.getElementsByTagName("item1");
тогда не вылетает по исключению, но itemArray ничего не соджержит.
В чем тут дело?
Помогите плиз написать корректный код!
Спустя 7 минут, 56 секунд (20.06.2007 - 12:27) vasa_c написал(а):
responseText содержит то что нужно?
С сервера отправляются нужные заголовки?
С сервера отправляются нужные заголовки?
Спустя 27 минут, 19 секунд (20.06.2007 - 12:54) mre написал(а):
Цитата(vasa_c @ 20.6.2007, 13:27) [snapback]23094[/snapback]
responseText содержит то что нужно?
С сервера отправляются нужные заголовки?
С сервера отправляются нужные заголовки?
Да, то что нужно.
alert(request.responseText)
выдает:
<?xml version="1.0" encoding="Windows-1251" ?>
<response>
<item1>
23:46 [MRE] - 1
</item1>
<item1>
23:47 [MRE] - 2
</item1>
<item1>
23:47 [MRE] - 3
</item1>
<item1>
01:07 [MRE] - 4
</item1>
<item1>
18:27 [] - ytu
</item1>
</response>
Спустя 31 минута, 13 секунд (20.06.2007 - 13:25) vasa_c написал(а):
Заголовок
Content-Type: text/xml; charset=windows-1251
послан?
Content-Type: text/xml; charset=windows-1251
послан?
Спустя 7 минут, 30 секунд (20.06.2007 - 13:33) mre написал(а):
Цитата(vasa_c @ 20.6.2007, 14:25) [snapback]23111[/snapback]
Заголовок
Content-Type: text/xml; charset=windows-1251
послан?
Content-Type: text/xml; charset=windows-1251
послан?
В загаловке исходной страницы, где это все происходит он есть:
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
Или его надо посылать еще куда-то при получении ответа от php скрипта?
Разьясните пожалуйста.
Спустя 3 минуты, 18 секунд (20.06.2007 - 13:36) vasa_c написал(а):
В php-сценарии, формирующем xml, посылать заголовок о том, что это именно xml, а не просто текст или еще что-то.
Код
<?php
header('Content-Type: text/xml');
print '<?xml version=....';
...
?>
header('Content-Type: text/xml');
print '<?xml version=....';
...
?>
Спустя 2 минуты, 16 секунд (20.06.2007 - 13:38) mre написал(а):
Спасибо!
Заработало!!
Заработало!!
_____________