Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.07.2009, 22:54
Аспирант
Отправить личное сообщение для thunder2 Посмотреть профиль Найти все сообщения от thunder2
 
Регистрация: 11.07.2009
Сообщений: 41

небольшая проблема с XHR запросом
Прошу тапками не кидаться. Я начинающий в этом деле, дается всё с каким-то невероятным трудом. Тут утнулся в проблему. Суть в следующем:
на этом сайте нашел описание что есть XHR запрос, как работает и всё такое. использую код из примеров опубликованных тут же.

выполняю синхронный запрос, в ответ получаю следующий ответ
<html><head>
<meta http-equiv="Content-Type" content="text/xml; charset=windows-1251">
<link href="b2b_ccs.css" rel="stylesheet" type="text/css">
</head><body>
<form id="form1" name="form1" action="" method="post">
<input type="hidden" id="client_id" value="_JK76DGHD">
<input type="hidden" id="errors" value="0">
</form>
</body></html>

в статье сказано чтобы браузер распарсил отет в XML надо в заголовке указать content="text/xml, проверяю свойство xmlHttp.responseXML!=null, условие выполняется, значит браузер ответ распарсил.
Далее в статье сказано что после этого со свойством responseXML можно работать как document, т.е. строка xmlHttp.responseXML.getElementById("errors").value для нашего ответа должно вернуть "0" вместо этого браузер сообщет об ошибке, что данные метод не поддердивается объектом. Вот собственное вопрос: где коряга.
P.S. пробовал делать так var _er=xmlHttp.responseXML.getElementById("errors"), не нравиться именно "getElementById".
Ответить с цитированием
  #2 (permalink)  
Старый 12.07.2009, 16:09
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от thunder2
в статье сказано чтобы браузер распарсил отет в XML надо в заголовке указать content="text/xml
Чтобы браузер распарсил XML, ему, как минимум, нужно передать XML, а не HTML.
Ответить с цитированием
  #3 (permalink)  
Старый 15.07.2009, 11:58
Аспирант
Отправить личное сообщение для thunder2 Посмотреть профиль Найти все сообщения от thunder2
 
Регистрация: 11.07.2009
Сообщений: 41

дык я ж в ответ вставил content="text/xml" или что-то имеется ввиду другое ? Может не так надо делать ?
Ответить с цитированием
  #4 (permalink)  
Старый 15.07.2009, 12:06
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Вы передаете не XML.
Ответить с цитированием
  #5 (permalink)  
Старый 15.07.2009, 16:38
Аспирант
Отправить личное сообщение для thunder2 Посмотреть профиль Найти все сообщения от thunder2
 
Регистрация: 11.07.2009
Сообщений: 41

хм... понятно. А вот вопрос тогда такой, а XHR вообще html не понимает ? Т.е. что работать с ответом как с куском HTML мне надо формировать ответ в другой форме (например убрать теги html, header, body и оставить тег form) и полученный ответ вставить в документ например document.write или element.innerText=... я правильно понял ?
Ответить с цитированием
  #6 (permalink)  
Старый 15.07.2009, 16:43
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Для этого у xhr есть свойство responseText.
Ответить с цитированием
  #7 (permalink)  
Старый 20.07.2009, 16:12
Аспирант
Отправить личное сообщение для thunder2 Посмотреть профиль Найти все сообщения от thunder2
 
Регистрация: 11.07.2009
Сообщений: 41

А не подскажите почему происходит следующее: есть IFRAME следующей записи
<IFRAME id="tree" src="http://localhost....">Ваш браузер не поддреживает IFRAME</IFRAME>
Вот то что src= бла-бла возвращает HTML со структуированым списком. В этой возвращенной html есть ссылка на таблицу связи. Но браузер отображает этот ответ как будто не находит указанный файл с CCS. Пробовал сделать следующее: когда ответ получен просматриваю исходный вид того что во фрейме(в IE есть такое по правой кнопеке мыши), копирую всё это в новый отдельный файл, скажем 1.html и выше указанном фрейме src делаю так src="1.html". Файл 1.html кладу в ту же папку что и отсновную страницу. В этом случае все показывается гуд.
Лечится это только включением в ответ всех используемых таблиц стилей. Как это исправить ?
Ответить с цитированием
  #8 (permalink)  
Старый 03.08.2009, 11:03
eee08
 
Сообщений: n/a

Сообщение от Kolyaj Посмотреть сообщение
Чтобы браузер распарсил XML, ему, как минимум, нужно передать XML, а не HTML.

HTML - подмножество XML так что дело тут в другом.

Как я понимаю responseXML не Null - значит что-то он да содержит. например, имеем:

<tag id="id">текст</tag>

в FF:


responseXML.getElementById("x") = Null
responseXML.getElementById("x").textContent = Неопределено

responseXML.getElementsByTagName("tag")[0] = tag
responseXML.getElementsByTagName("tag")[0].textContent = текст

т.е. может если захочет, а вот IЕ ваще никак.
Может быть кто-то реально в этом разобрался с EI? Поделитесь.
Ответить с цитированием
  #9 (permalink)  
Старый 03.08.2009, 11:18
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от eee08
HTML - подмножество XML так что дело тут в другом.
Не значит, что это одно и то же. Не извесно, как кто будет себя вести в таких ситуациях, так что передавайте xml (<?xml ?>)
Ответить с цитированием
  #10 (permalink)  
Старый 03.08.2009, 11:32
eee08
 
Сообщений: n/a

пробовал - то же самое
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с Ajax запросом в IE и Opera flash_uz AJAX и COMET 0 30.04.2009 15:08
Проблема спама lliberty AJAX и COMET 1 12.03.2009 16:47
проблема с обработкой DIV nerik AJAX и COMET 2 22.08.2008 17:40
Проблема с маркером kostian02 Общие вопросы Javascript 0 23.06.2008 16:10
проблема с передачей русского текста в Prototype subaru Prototype & script.aculo.us 2 26.07.2007 16:56