我正在使用此HTML
<html>
<head>
<Title>EBAY Search</title>
</head>
<script language="JavaScript" src="ajaxlib.js"></script>
<body>
Click here <a href="#" OnClick="GetEmployee()">link</a> to show content
<div id="Result"><The result will be fetched here></div>
</body>
</html>
使用此Javascript
var xmlHttp
function GetEmployee()
{
xmlHttp=GetXmlHttpObject()
if(xmlHttp==null)
{
alert("Your browser is not supported")
}
var url="get_employee.php"
url=url+"cmd=GetEmployee"
url=url+"&sid="+Math.random()
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}
function FetchComplete()
{
if(xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
document.getElementById("Result").innerHTML=xmlHttp.responseText
}
if(xmlHttp.readyState==1 || xmlHttp.readyState=="loading")
{
document.getElementById("Result").innerHTML="loading"
}
}
function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
try
{
xmlHttp =new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
然而它没有被召唤。当我自己调用它时,get_employee.php工作正常,所以这不是问题。我的代码中是否有任何错误会阻止它被调用?我无法测试任何firefox扩展,我没有访问权限,所以请不要将其作为答案。
编辑:问题是javascript根本没有被调用。我修复了问号问题,但即使只是一个带警报的简单javascript也没有被调用。
答案 0 :(得分:1)
var url="get_employee.php?"
需要“?”。
最好使用此标记来包含脚本:
<script type="text/javascript" src="ajaxlib.js"></script>
答案 1 :(得分:1)
更改此
var url="get_employee.php"
url=url+"cmd=GetEmployee"
url=url+"&sid="+Math.random()
到此:
var url="get_employee.php?cmd=GetEmployee&sid="+Math.random();
你错过了“?”并且不需要所有的连接(但我想这只是个人风格)。
另外,如果您确实拥有“&lt;结果将在此处获取&gt;”在你的HTML中,你应该删除它。
答案 2 :(得分:1)
使用像firebug这样的javascript调试工具,这会让你的生活变得更简单。
您的代码中出现语法错误导致错误“GetEmployee未定义”
在“GetXmlHttpObject()”中的最后一次尝试之后,它是一个缺失的“catch”。添加缺少的“catch”后,这是相同的功能。
function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
xmlHttp=new XMLHttpRequest();
}catch (e)
{
try
{
xmlHttp =new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {}
}
return xmlHttp;
}
答案 3 :(得分:1)
我对将<script>
标签放入头部和身体之间无人区域感到困惑。这有什么特别的意义吗?
答案 4 :(得分:0)
var url =“get_employee.php” +“?”
(回答评论)
报告了哪些错误?您仍然需要将您的FetchComplete函数附加到xmlHttp的“onreadystatechange”属性,但不应该这样做是错误的。
确保ajaxlib.js确实已加载,并且它是您所指的文件。发一些警报,看看它们是否弹出。
答案 5 :(得分:0)
getcommand.php
和cmd=
部分之间不应该有问号或符号吗?
答案 6 :(得分:0)
我不认为它的内容像网址中的missinq问号一样愚蠢
var url="get_employee.php"
url=url+"cmd=GetEmployee"
url=url+"&sid="+Math.random()
我原本希望看到"?cmd=GetEmployee"
答案 7 :(得分:0)
您可以使用alert(url)
检查发送的确切网址。
答案 8 :(得分:0)
确保您没有错放或命名文件。 您也可以将OnClick更改为全部小写。
答案 9 :(得分:0)
如果你不能使用正确的调试器,你可以在所有地方添加警告语句,看看是否有任何事情发生(是的,这是一个糟糕的解决方案,但是任何时候你不使用一个好的工具,你有糟糕的解决方案)。
另外,请确保OnClick()返回false,以防止浏览器重新加载页面。
<a href="#" OnClick="GetEmployee()">link</a>
变为
<a href="#" OnClick="GetEmployee(); return false;">link</a>