无法在php'undefined index'错误中获取POST数据

时间:2016-02-03 05:00:01

标签: php ajax

我使用普通的javascript进行Ajax请求。当通过post方法发送数据时,php抛出一个错误。

的index.php

String

validateuser.php

<html>

    <header>

        <script>
            function submit(){

                var userName = document.getElementById("username").value;
                var passWord = document.getElementById("password").value;


                var data = "username=" + userName + "&password=" + passWord;

                //send ajax request
                var xmlHttp = new XMLHttpRequest();
                xmlHttp.onreadystatechange = function()
                {
                    if(xmlHttp.readyState == 4 && xmlHttp.status == 200)
                    {
                        console.log(xmlHttp.responseText);
                    }
                }
                xmlHttp.open("post", "validateuser.php");
                xmlHttp.send(data);
            }
        </script>

    </header>

    <body>

            <label>User Name : </label>
            <input type="text" name="username" id="username"/>

            <label>Password : </label>
            <input type="text" name="password" id="password"/>

            <button onClick="submit()"> Login</button>

    </body>

</html>

2 个答案:

答案 0 :(得分:4)

在Javascript ajax for post中,您需要在代码中添加以下行:

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

您可以查看文档和示例W3schoolsdeveloper mozilla

对于更可靠的代码,只需在PHP代码中添加以下行

if(isset($_POST['username']) && isset($_POST['password'])){
     //your code
}

答案 1 :(得分:1)

您需要在xmlHttp对象上设置标题。在xmlHttp.send(data);行之前添加以下行:

xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
相关问题