我目前正在尝试学习Ajax并且一直在学习教程。我创建了以下脚本:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function MyFunction(){
var xmlhttp;
if(window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest();
}
else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function(){
if(ajaxRequest.readyState == 4){
document.getElementById("MyDiv").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("POST", "command.php", true);
xmlhttp.send();
}
</script>
</head>
<body>
<button onclick="MyFunction()">Execute</button>
<div id="MyDiv"></div>
</body>
</html>
然后我有一个名为command.php的php文件,它只是回应“成功”一词。
显然,此脚本的目的是在单击执行按钮时返回单词“success”。我已经非常准确地遵循了这个教程,所以我不确定我写的内容有什么问题。
我还查看了其他Ajax教程,看看他们可能做了哪些不同的事情。似乎Ajax的某些变体看起来与其他变体非常不同。我的意思是,很多教程涉及代码看起来像我写的,但许多其他(如this one)看起来相当不同,并涉及许多'$'标志。这是为什么?
答案 0 :(得分:3)
看起来可能是复制/粘贴错误。我在猜测:
if(ajaxRequest.readyState == 4){
应该是:
if(xmlhttp.readyState == 4){
此外,它听起来并不像您正在使用您的浏览器开发工具。控制台应该有这样的消息:
Uncaught ReferenceError: ajaxRequest is not defined
我建议您阅读首选浏览器的开发工具。