“找不到元素”试图让AJAX发送/接收字符串到PHP

时间:2013-02-24 22:58:47

标签: php html ajax

我在W3Schools上阅读了一个AJAX教程,做了一个基本相同的简单示例,它产生了一个错误。如果好奇,教程就在这里:http://www.w3schools.com/ajax/ajax_aspphp.asp

我想将一个字符串发送到PHP文件(类似于链接中的第三个代码块)但是我收到一个错误:“找不到元素”。 Firefox突出显示PHP文件的第5行,它只是?>

带有AJAX代码的文件名为“getHello.html”(.html是否正确?)并且具有以下代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>AJAX Hello World Example</title>
    <script>
        function sayHello(str) {
            if (str.length == 0) {
                document.getElementById("showText").innerHTML = "Hello World!";
                return;
            }
            var xmlHttp = new XMLHttpRequest();
            xmlHttp.onreadystatechange = function() {
                if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
                    document.getElementById("showText").innerHTML = xmlHttp.responseText;
                }
            }
            xmlHttp.open("GET", "sendHello.php?q="+str, true);
            xmlHttp.send();
        }
    </script>
</head>
<body>
    <input type="text" id="textIn" onkeyup="sayHello(this.value);"/><br/><br/>
    <div id="showText"></div>
</body>
</html>

PHP文件名为“sendHello.php”,其代码如下:

<?php
    $q = $_GET["q"];
    $response = "Hello World! Sent: ".$q;
    echo $response;
?>

2 个答案:

答案 0 :(得分:1)

使用本地服务器和HTML编辑器,当您忘记通过文件运行HTML时,可能会出现此错误(在错误控制台上):protocol

答案 1 :(得分:0)

您的示例代码对我来说很好。刷新页面,如果您在控制的服务器上运行,它仍然无法正常工作,也可以重新启动服务器(您永远不会知道,也许您打开了某种服务器端缓存)。是的,.html是getHello.html的正确扩展,因为它不包含任何PHP代码。