我之前使用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条件,但警报为空。我知道这很简单,但我找不到它。
谢谢。
答案 0 :(得分:2)
使用firebug查看是否存在任何问题(例如有任何404等)。此外,最好选择jQuery框架,如jQuery for AJAX。
答案 1 :(得分:0)
在看到一些建议之后,我看到对我的php文件的调用从未通过firebug发生。 发生的操作是当我通过调用Ajax功能的页面上的链接导航回我的索引时。一旦我从我的链接中删除了href,php工作了!
非常狡猾,但现在我知道了更好
感谢您的帮助。