Javascript.RU

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

ИЕ выдает ошибку в простеньком скрипте.
Только начал изучать AJAX, написал свой первый запрос.
Суть запроса: получить от сервера какие-нить данные, и заменить содержимое <span> этими данными.

Функция replaceText — ей заменяется текст на странице.
function replaceText(el, text) {
  if (el != null) {
    clearText(el);
    var newNode = document.createTextNode(text);
    el.appendChild(newNode);
  }
}

function clearText(el) {
  if (el != null) {
    if (el.childNodes) {
      for (var i = 0; i < el.childNodes.length; i++) {
        var childNode = el.childNodes[i];
        el.removeChild(childNode);
      }
    }
  }
}


Код самого запроса:
var request = null;

   function createRequest() {
     try {
       request = new XMLHttpRequest();
     } catch (trymicrosoft) {
       try {
         request = new ActiveXObject("Msxml2.XMLHTTP");
       } catch (othermicrosoft) {
         try {
           request = new ActiveXObject("Microsoft.XMLHTTP");
         } catch (failed) {
           request = null;
         }
       }
     }
    if (request == null) {
       alert("Error creating request object!");
	   }
   }
   function getYears() {
     createRequest();
     var url = "example.php";
     request.open("GET", url, true);
     request.onreadystatechange = updatePage;
     request.send(null);
  }
     function updatePage() {
    if (request.readyState == 4) {
		
		var o = request.responseText;
		var qq = document.getElementById("qop");
		replaceText(qq, o);
				
	}
  }


Соответственно, на странице есть тег <span> с id=qop.

ИЕ выдает вот такую ошибку:
Сведения об ошибке на веб-странице
Сообщение: Не удалось завершить действие. Ошибка c00ce56e.
Строка: 47
Символ: 3
Код: 0

Строка 47, это:
alert("Error creating request object!");


Подскажите пожалуйста, что не так?
Пример можно посмотреть по адресу consart.ru
В опере и в ФФ работает.
Ответить с цитированием
  #2 (permalink)  
Старый 24.03.2009, 16:49
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

очень странно.
перенес ваш пример под ноль на денвер, и все заработало в осле.но на вашем сайте не работает.не знаю почему.попробуйте пошаманить
подозреваю, что проблема с какими-то header-ами идущими с сервера.попрбуйте просто текстовый файл загрузить
PS вы не ту строку сказали про номер
Ответить с цитированием
  #3 (permalink)  
Старый 24.03.2009, 20:04
QQQ QQQ вне форума
Интересующийся
Отправить личное сообщение для QQQ Посмотреть профиль Найти все сообщения от QQQ
 
Регистрация: 24.03.2009
Сообщений: 10

Gvozd,
вы были правы: во-первых, если изменить запрос к текстовому файлу, то в ИЕ все работает.
Во-вторых, действительно, он выдает ошибку в строчке
var o = request.responseText;
.

Насчет «пошаманить» — я, к сожалению, новичок, не подскажете, что конкретно лучше сделать?
Ответить с цитированием
  #4 (permalink)  
Старый 24.03.2009, 20:47
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

для начала вышлите код скрипта на который идет запрос.
я так подозреваю он короткий.
скорее всего там есть что-то по типу header()
также гляньте не лежит ли у вас рядом какой-нибудь подозрительный .htaccess .заголовки также в нем могут бюыть определены
Ответить с цитированием
  #5 (permalink)  
Старый 24.03.2009, 21:06
QQQ QQQ вне форума
Интересующийся
Отправить личное сообщение для QQQ Посмотреть профиль Найти все сообщения от QQQ
 
Регистрация: 24.03.2009
Сообщений: 10

Gvozd,
.htaccess не используются на этом хостинге. (Можно включить, но сейчас выключено и файлов нет).
Вот код скрипта, но там нет header()
<?php
include "include/connect.php";
$sql = 'SELECT `year` FROM `items` WHERE item_id=1 LIMIT 0, 30 '; 
$result = mysql_query($sql) or die(mysql_error());
$rows = mysql_num_rows($result);
while($name_row = mysql_fetch_row($result)) {
print("$name_row[0]\n");
}
include "include/disconnect.php";

?>


в connect.php и disconnect.php — там только подключение к базе данных и отключение.

Последний раз редактировалось QQQ, 24.03.2009 в 21:09.
Ответить с цитированием
  #6 (permalink)  
Старый 24.03.2009, 21:28
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Цитата:
include "include/connect.php";
include "include/disconnect.php";
это что за файлы?
попробуйте написать в вашем файле просто
<?="2001";?>

если запашет, то проблема в первом подключаемом файле
Ответить с цитированием
  #7 (permalink)  
Старый 24.03.2009, 21:46
QQQ QQQ вне форума
Интересующийся
Отправить личное сообщение для QQQ Посмотреть профиль Найти все сообщения от QQQ
 
Регистрация: 24.03.2009
Сообщений: 10

Gvozd,
нет, проблема не в подключаемом файле, даже обычная строка
<?="2001";?>

в файле, куда идет запрос — все равно в файле, который отправляет запрос, в ИЕ ошибка.
Ответить с цитированием
  #8 (permalink)  
Старый 24.03.2009, 22:05
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

честно пытался продебажить header-ы идущие с вас, и идущие с тестового скрипта моего.
разницы почти нету

не знаю, что вам посоветовать.
пошаманьте с бубном.
переименуйте файл,там.
попрыгайте на пяточка что ли.
короче природа мне непонятна.
PS сосед проверил в старом осле.там такая же фигня
Ответить с цитированием
  #9 (permalink)  
Старый 25.03.2009, 00:17
Аспирант
Отправить личное сообщение для IIIEPJIOK Посмотреть профиль Найти все сообщения от IIIEPJIOK
 
Регистрация: 23.12.2008
Сообщений: 75

предлагаю начать шаманить с того, что послать в заголовке нормальную кодировку, а именно:
за место cp1251, писать windows-1251
Ответить с цитированием
  #10 (permalink)  
Старый 25.03.2009, 00:27
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

IIIEPJIOK,
неожиданно.но работает.
попробовал.да дело в кодироке.
а не поделитесь знанием почему осел так реагирует на неправильную кодировку?
PS всегда считал, что оба написания правильны и взаимозаменяемы
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как выдавать ошибку при сбросе загрузки страницы? AvaGet Общие вопросы Javascript 2 11.12.2008 19:04
Синтаксическая ошибка в скрипте Rush Общие вопросы Javascript 6 18.11.2008 16:52
insertBefore выдаёт ошибку и не работает на опере и фоксе SunnyDay Общие вопросы Javascript 3 19.09.2008 12:08
Помогите найти ошибку в скрипте sdff AJAX и COMET 4 21.07.2008 19:33
добавление окошка в скрипт подсчета слов Гость Общие вопросы Javascript 10 11.03.2008 17:07