Не могу получить простой ответ Ajax - PullRequest
0 голосов
/ 05 марта 2010

Ранее я реализовал более сложный AJAX с помощью JavaScript и PHP, но по какой-то причине это отказывается работать. Это скопировано почти непосредственно из примера W3.

var xmlhttp;
function changeLoc(str)
 {
 xmlhttp=GetXmlHttpObject();
 if (xmlhttp==null)
   {
   alert ("Browser does not support HTTP Request");
   return;
   }
 var url="action.php";
 url=url+"?q="+str;
 url=url+"&sid="+Math.random();
 xmlhttp.onreadystatechange=stateChanged;
 xmlhttp.open("GET",url,true);
 xmlhttp.send(null);
 }

 function stateChanged()
 {
 if (xmlhttp.readyState==4)
 {
  alert(xmlhttp.responseText);
 }
 }

 function GetXmlHttpObject()
 {
 if (window.XMLHttpRequest)
   {
   // code for IE7+, Firefox, Chrome, Opera, Safari
   return new XMLHttpRequest();
   }
 if (window.ActiveXObject)
   {
   // code for IE6, IE5
   return new ActiveXObject("Microsoft.XMLHTTP");
   }
 return null;
 }

И простой action.php

<?php
 echo 'here'; 
?>

Функция changeLoc вызывается по ссылке на html-странице. Он попадает в состояние readyState = 4, но предупреждение пустое. Я знаю, что это что-то действительно простое, но я не могу его найти.

Спасибо.

Ответы [ 2 ]

2 голосов
/ 05 марта 2010

Используйте firebug, чтобы увидеть, есть ли какие-либо проблемы (например, какие-либо 404 и т. Д.). Также лучше выбрать Javascript Framework, например, JQuery для AJAX.

0 голосов
/ 05 марта 2010

После просмотра некоторых предложений я увидел, что вызов моего php-файла никогда не происходил через firebug. Действие, которое было , имело место, когда я вернулся к своему индексу по ссылкам на моей странице, которые вызывают функциональность Ajax. Как только я удалил href из моих ссылок, php заработал!

Очень хитро, но теперь я знаю лучше

Спасибо за вашу помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...