Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: AJAX: выполнение запроса

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: AJAX: выполнение запроса (не выполняется повторно)
esdi
Отправлено: 31 Января, 2009 - 08:41:12
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Янв. 2009  


Помог: 0 раз(а)




Приветствую!

Подскажите, пожалуйста, где копать... Ситуация такая.
Есть страница index.php, с неё переход на страницу toajax.php.
Со страницы toajax.php с помощью объекта XMLHttpRequest() вызывается файл onserveraj.php, который выполняет запрос к MySQL серверу, идёт на указаные урлы, берёт на урлах информацию и возвращает строку в responseText.
Обновляется страница toajax.php.

Вызов сценария - onload() на toajax.php.

И сама проблема: все выполняется только 1 раз. Повторный запуск onserveraj.php получается только если закрыть и открыть снова окно браузера, то есть если возвращаюсь на index.php и потом снова захожу на toajax.php, то onserveraj.php не выполняется Огорчение . Закрывю браузер и открываю снова - запрос есть.

Подскажите пожалуйста, где искать ошибку Огорчение ?

код на toajax.php (в начале страницы)


CODE (text):
скопировать код в буфер обмена
  1. <script language="javascript" type="text/javascript">
  2.  
  3. xmlHttp1 = false;
  4.  
  5. function createRequest() {
  6. try {
  7.   xmlHttp = new XMLHttpRequest();
  8. } catch (trymicrosoft) {
  9.   try {
  10.     xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
  11.   } catch (othermicrosoft) {
  12.     try {
  13.       xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  14.     } catch (failed) {
  15.       xmlHttp = false;
  16.     }
  17.   }
  18. }
  19. if (!xmlHttp)
  20.   alert("Error initializing XMLHttpRequest!");     
  21. return xmlHttp;
  22. }
  23.          
  24. function callServer()
  25. {
  26.  
  27.   xmlHttp1 = createRequest();
  28.   // Создать URL для подключения
  29.   var url = "linkscheckajserv2.php";
  30.   // Открыть соединение с сервером
  31.   xmlHttp1.open("GET", url, true);
  32.   // Установить функцию для сервера, которая выполнится после его ответа
  33.   xmlHttp1.onreadystatechange = updateReport;
  34.   // SПередать запрос
  35.   xmlHttp1.send(null);
  36.  
  37.   document.getElementById("waitChecking").innerHTML = "<div style='height:200px; padding:80px 0px'>please wait while cheking...</div>";
  38.   document.body.style.cursor = 'wait';
  39. }
  40.  
  41.  
  42. function updateReport()
  43. {      
  44.   if (xmlHttp1.readyState == 4)
  45.         {
  46.         if (xmlHttp1.status == 200)
  47.                 {
  48.         var responseReport = xmlHttp1.responseText;    
  49.                 document.getElementById("wait").innerHTML = "";
  50.                 document.getElementById("waitH1").innerHTML = "completed";
  51.                 document.body.style.cursor = 'default';
  52.                 document.getElementById("reportStr").innerHTML = "";
  53.         document.getElementById("reportStr").innerHTML = document.getElementById("reportStr").innerHTML + "<br>" + responseReport;
  54.                 }
  55.         }
  56. }
  57.  
  58. </script>


заголовки ответа ( getAllResponseHeaders() ):
первая загрузка

Fri, 30 Jan 2009 19:22:38 GMT Server: Apache/2.2.4 (Win32) PHP/5.2.1 X-Powered-By: PHP/5.2.1 Content-Length: 757 Keep-Alive: timeout=5, max=95 Connection: Keep-Alive Content-Type: text/html

последующие:

X-Powered-By: PHP/5.2.1 Content-Length: 757 Keep-Alive: timeout=5, max=95 Content-Type: text/html

Подозреваю, что как то надо сбросить значения каких-то перевенных, но где и каких?

Help me, please
Спасибо

(Отредактировано автором: 31 Января, 2009 - 08:42:38)

 
 Top
Бублик
Отправлено: 31 Января, 2009 - 09:38:19
Post Id


Частый гость


Покинул форум
Сообщений всего: 130
Дата рег-ции: Янв. 2009  


Помог: 0 раз(а)

[+]


В onserveraj.php добавьте в начале:
PHP:
скопировать код в буфер обмена
  1. header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
  2.     header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
  3.     header("Cache-Control: no-store, no-cache, must-revalidate");
  4.     header("Cache-Control: post-check=0, pre-check=0", false);
  5.     header("Pragma: no-cache");

(Отредактировано автором: 31 Января, 2009 - 10:02:27)

 
 Top
esdi
Отправлено: 31 Января, 2009 - 11:06:40
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Янв. 2009  


Помог: 0 раз(а)




Бублик пишет:
В onserveraj.php добавьте в начале:
PHP:
скопировать код в буфер обмена
  1. header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
  2.     header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
  3.     header("Cache-Control: no-store, no-cache, must-revalidate");
  4.     header("Cache-Control: post-check=0, pre-check=0", false);
  5.     header("Pragma: no-cache");


Спасибо!
Всё работает!
Превосходно Браво
Два дня тупил - спросить не решался Улыбка

Добавил и в toajax.php и в onserveraj.php.
Эти строки запрещают браузеру кэшировать данные - так понимаю.

Протестил в Опере и ИЕ - все отлично!
 
 Top
Бублик
Отправлено: 31 Января, 2009 - 11:15:07
Post Id


Частый гость


Покинул форум
Сообщений всего: 130
Дата рег-ции: Янв. 2009  


Помог: 0 раз(а)

[+]


Я думаю в toajax.php уже лишнее было Улыбка
 
 Top
esdi
Отправлено: 31 Января, 2009 - 11:39:11
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Янв. 2009  


Помог: 0 раз(а)




Бублик пишет:
Я думаю в toajax.php уже лишнее было Улыбка


не надо, поубирал (это паранойа уже) УлыбкаУлыбка
надо будет про заголовки внимательно почитать, а то думал, проблема в работе с объектом XMLHttpRequest()
 
 Top
CodeWarrior
Отправлено: 01 Февраля, 2009 - 00:56:47
Post Id



Частый гость


Покинул форум
Сообщений всего: 157
Дата рег-ции: Янв. 2009  
Откуда: Албания


Помог: 0 раз(а)




Если интересно, прочитайте эту статью:
http://forum.php.su/topic.php?forum=33&topic=26
Тема закрыта!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB