Ajax Post与GET

时间:2016-07-18 18:05:50

标签: javascript ajax

我正在尝试实现一个完全适用于GET请求的AJAX示例,但我无法通过POST进行传输。我究竟做错了什么 ? PHP收到的POST对象始终为空。谢谢你的建议!

HTML& JavaScript的:

<html>
    <head>
        <title> Create a new user</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <script>  

            function checkUser(){
                xhttp = new XMLHttpRequest();
                xhttp.open("POST","usercheck.php",true);

                                xhttp.onreadystatechange = function () {
                                    if (xhttp.readyState == 4 && xhttp.status == 200) {
                                        var data = xhttp.responseText;
                                        alert("Benutzer" + data);
                                    }
                                }
                                xhttp.send("username=" + encodeURIComponent(document.getElementById("username").value));
                            }

        </script>
    </head>
    <body>
        <p>User:</p><br> 
        <input type="text" id="username" name="username">
        <button onclick="checkUser();"> Check </button>
    </body>
</html>

PHP代码:

<?php

$usernames = array("admin", "gast", "paul");
$validate_pattern = "/^[a-z0-9]{4,20}$/";

if (!isset($_POST["username"])) {
    die("{valid:false,message:false}");
}

if (in_array($_POST["username"], $usernames)) {
    die("{valid:false,message:'Username is used!'}");
}

if (!preg_match($validate_pattern, $_POST["username"])) {
    die("{valid:false,message:'Username wrong.'}");
}
echo "{valid:true,message:false}";


 ?>

1 个答案:

答案 0 :(得分:0)

我在代码中发现了错误。我错过了设置请求标头,不幸的是,这不是教程的一部分: xhttp.setRequestHeader( '内容 - 类型', 'X-WWW窗体-urlencoded');