我的Ajax Post响应代码不起作用?

时间:2017-04-21 10:12:00

标签: javascript php ajax

每次收到错误消息。我不知道我的hr.status是错误还是hr.ready错误或者还有其他错误。我无法确定这段代码有什么问题我花了几个小时修改它无济于事! 我正在通过html输入一个输入并通过ajax发送到php.Php应该发送响应文本。但它没有显示,而是说我的onreadystate函数有一些错误。

Javascript代码

<!DOCTYPE html>
            <html>
            <head>
            <script>
            function ajax_get_json(){
            var results = document.getElementById("results");
            var hr = new XMLHttpRequest();
            var namee=document.getElementById("nam").value;
            var nams="fn="+namee;
            hr.open("POST", "marks.php", true);
            hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            hr.onreadystatechange = function() {
            if(hr.readyState == 4 && hr.status == 200) {
            var data = JSON.parse(hr.responseText);
            document.getElementById("results").innerHTML = data;
            else
                    {alert("Error");}
            }
            }
            hr.send(nams);
            document.getElementById("results").innerHTML = "processing...";

            }
            </script>
            </head>
            <body>
            <form>
            Name:<input type="text" id="nam" name="sname"><br><!--My input-->
            <input type="submit" value="Submit" onclick="ajax_get_json();">
            </form>
            <div id="results"></div>
            </body>
            </html>
Every time the error message is alerted.I dont know if my hr.status is   wrong or hr.ready is wrong  or there is some other error.I cant quite figure what is the problem with this code I have spent Hours Modifying it but to no avail!!

PHP代码

   <?php
    $aa=$_POST['fn'];
    echo $aa;

    ?>

2 个答案:

答案 0 :(得分:0)

你在其他地方之前缺少一个}。你还有一个额外}以上hr.send。

答案 1 :(得分:0)

if(hr.readyState == 4 && hr.status == 200) {
            var data = JSON.parse(hr.responseText);
            document.getElementById("results").innerHTML = data;
            }
            else
            {
                  alert("Error");
            }
            }
            hr.send(nams);
            document.getElementById("results").innerHTML = "processing...";

            }

只需添加&#34;}&#34;在其他之前删除&#34;}之后