我使用普通的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>
答案 0 :(得分:4)
在Javascript ajax for post中,您需要在代码中添加以下行:
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
您可以查看文档和示例W3schools和developer 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");