无法在ajax中检测文件

时间:2015-04-18 17:11:08

标签: javascript php ajax

嘿伙计们是ajax的新手我有一个php文件和一个ajax文件。我只是想从ajax中检测php文件,所以我在ajax中发送了一个请求,如

<!DOCTYPE html>
<html>
<head>
<script>
function loadXMLDoc()
{
var xmlhttp;
if (window.XMLHttpRequest) {
  xmlhttp=new XMLHttpRequest();
}
else
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
  xmlhttp.onreadystatechange=function()
{
   if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
    alert(xmlhttp.responseText);
  } else {
 console.log('file not fetched');
}

xmlhttp.open("GET","first.php?m=babe",true);
xmlhttp.send();
}
}
loadXMLDoc();
</script>
</head>
<body>
</body>
</html>

我的php文件

<?php
include("ajax.html");
$p = $_REQUEST['m'];
if($p == 'babe') {
    echo true;
}

当我在localhost上运行ajax.html时,它不会在窗口或控制台中显示任何消息。

你们能告诉我为什么会这样吗?

Thanx寻求帮助

1 个答案:

答案 0 :(得分:1)

你的一些括号错了:

function loadXMLDoc(){
var xmlhttp;
if(window.XMLHttpRequest){ // This bracket was missing
  xmlhttp=new XMLHttpRequest();
}
else{ // This bracket was missing
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
  if(xmlhttp.readyState==4 && xmlhttp.status==200){
    alert(xmlhttp.responseText);
  }
  else{
    console.log('file not fetched');
  }
} // This bracket was on the wrong place (it enclosed the .open() and .send())

xmlhttp.open("GET","first.php?m=babe",true);
xmlhttp.send();
}

loadXMLDoc();

此外,定义回调函数的更简单方法是:

xmlhttp.onload=function(){
  if(xmlhttp.status==200){
    alert(xmlhttp.responseText);
  }
  else{
    console.log('file not fetched');
  }
}