无法获得简单的Ajax响应

时间:2010-03-05 00:34:17

标签: php ajax text response

我之前使用javascript和PHP实现了更复杂的AJAX,但由于某种原因,它拒绝工作。这几乎是直接从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'; 
?>

从html页面上的链接调用函数changeLoc。它进入readyState = 4条件,但警报为空。我知道这很简单,但我找不到它。

谢谢。

2 个答案:

答案 0 :(得分:2)

使用firebug查看是否存在任何问题(例如有任何404等)。此外,最好选择jQuery框架,如jQuery for AJAX。

答案 1 :(得分:0)

在看到一些建议之后,我看到对我的php文件的调用从未通过firebug发生。 发生的操作是当我通过调用Ajax功能的页面上的链接导航回我的索引时。一旦我从我的链接中删除了href,php工作了!

非常狡猾,但现在我知道了更好

感谢您的帮助。