AJAX没有回应

时间:2012-03-21 05:32:40

标签: php javascript html ajax

所以我试图从我的php文件中提醒我的“Hello”,它非常简单,但由于某种原因它不起作用。

JS

    function dynamic()
{
    if(window.XMLHttpRequest)
    {
        xmlhttp = new XMLHttpRequest();
    }
    else
    {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }

    xmlhttp.onreadystatechange = function()
    {
        if(xmlhttp.readyState == 4 && xmlhttp.status == 200)
        {   
            window.alert(xmlhttp.responseText);
        }
    }

    xmlhttp.open("POST", "hello.php", true);
    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
}

dynamic();

PHP

<?php 
echo "Hello";
?>

HTML

<html>
<head>
    <title>Hello</title>
    <script src="dynamic.js"></script>
</head>
<body>

test

</body>
</html>

我无法通过警告框提醒我的“你好”。它应该直接来自responseText。

5 个答案:

答案 0 :(得分:3)

您没有调用send方法。它发送请求 MDN

xmlhttp.send();

如果你想在POST中放入任何数据,请将它作为urlencoded格式放入send methods参数中。

xmlhttp.send("foo=bar&hello=world");

答案 1 :(得分:0)

试试这个:

    function dynamic()
{
    if(window.XMLHttpRequest)
    {
        xmlhttp = new XMLHttpRequest();
    }
    else
    {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }

    xmlhttp.onreadystatechange = function()
    {
        if(xmlhttp.readyState == 4 && xmlhttp.status == 200)
        {   
            window.alert(xmlhttp.responseText);
        }
    }

    xmlhttp.open("GET", "hello.php", true);
    xmlhttp.send(null);
}

dynamic();

答案 2 :(得分:0)

我想你忘了发送请求:

xmlhttp.send();

答案 3 :(得分:0)

试试这个

xmlhttp.setRequestHeader("Content-type", "text/plain");

xmlhttp.setRequestHeader("Content-type", "text/html");

而不是

xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

你必须把

xmlhttp.send(null);

答案 4 :(得分:0)

the answer旁边,登录php文件在类似情况下是一种有用的行为。