我的AJAX文件不起作用


My AJAX file does not work

我只是做了一个简单的AJAX应用程序,这样我的html页面就可以通过AJAX.js文件从php文件中获取一些数据,我已经把它们放在服务器中了,所以当我访问localhost/mypage时,它应该被执行,但似乎存在一些问题,因此事情没有按照我预期的方式发生。

这是我的html文件:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <META http-equiv="Content-Type" Content="text/html; Charset=UTF-8">
    <title>
        My Portal
    </title>
    <link rel="stylesheet" href="style.css" type="text/css"/>
    <script type="text/javascript" src="ajax.js"></script>
</head>
<body onload="load()">
    <div id="header">
        <img src="images/logo.gif" id="logo" alt="Logo"/>
        <a href="http://www.google.com">
            <img src="images/logo2.png" id="logo2" align="right" alt="google Ltd"/>
        </a>
    </div> 
    <div id="container">
        <div id="function"></div>
        <div id="Display"></div>
        <div id="View"></div>
    </div>
    <div id="footer">
    </div>
</body>
</html>

下面是js文件:

function load(){
    var xmlhttp;
    if (window.XMLHttpRequest){ // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp = new XMLHttpRequest();
    }
            else{ // code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }               
    xmlhttp.onreadystatechange = function(){
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200){
            document.getElementById("function").innerHTML=xmlhttp.responseText;         
        }
    }
    xmlhttp.open("GET","test.php", true);
    xmlhttp.send();
}

最后是php文件:

<?php
     print "<h1>hgfkegfalhgj</h1>";
?>

我希望它应该在我的页面中打印出上面的字符串,然而,什么都不能显示,有人能告诉我问题出在哪里吗?我已经检查过我已经在浏览器中启用了javascript,所以我很确定我的html文件可以调用js文件中的函数。

我不懂PHP,但您必须将content类型设置为text/plain。类似:

header('Content-Type: text/plain');

您的代码适用于我。

问题可能是以下任何一种:

1) 检查test.php的路径(我建议在xmlhttp.open()中使用绝对路径)

2) 您的服务器可能没有正确返回页面(请尝试打开test.php并检查输出)

你可以使用firebug这样的浏览器插件来分析ajax请求和响应,它可以让你更好地了解。

使用代替body标记中的onLoad函数

<script>
window.onload = function(){
load();
};
function load(){
//your code
}
</script>

或者尝试在正文之前使用script load()函数。我认为这会解决你的问题。此外,请尝试更改id,最好不要将关键字用作id(函数id将其更改为其他内容)