我尝试使用AJAX登录。 AJAX函数将数据发布到PHP文件,但是当我尝试在PHP中从POST检索数据时,它是空的。
这是我的AJAX发布代码:
function validateUser() {
var userR = $("#fldUser").val();
var passwordR = $("#fldPassword").val();
if (userR.length < 1) {
$("#divStatusText").html("<p class=\"text-danger\"> <b>A user is required.</b></p>");
} else if (passwordR.length < 1) {
$("#divStatusText").html("<p class=\"text-danger\"><b>A password is required.</b></p>");
} else {
// alert(userR + passwordR)
$.ajax({
type: 'POST',
// url: '/_Controlador/_GSystemLogIn.php/',
url: '/_Controlador/_GSystemLogIn.php',
// data:'user=' + userR +'&password=' + passwordR,
data: {
'user': userR,
'password': passwordR
},
dataType: 'JSON',
beforeSend: function(xhr) {
alert("En before send: " + userR + passwordR);
},
success: function(data) {
alert(data);
if (data.message === "Success") {
// location.href = "main.php";
} else {
$("#divStatusText").html("<p class=\"text-danger\"><b>User or password is incorrect.</b></p>");
$("#fldUser").val("");
$("#fldPassword").val("");
}
},
error: function(data) {
alert("Error in AJAX call.");
}
});
}
}
PHP代码检索数据:
var_dump($_POST);
$user = $_POST['user'];
$password = $_POST['password'];
echo( "PHP user received: ". $user);
echo( "PHP pass received: ".$password);
AJAX beforeSend
中的警报正确打印数据,但var_dump($_POST)
打印:
array(0){}
我也尝试了不同的方式来发送数据和网址。我非常感谢你的帮助。谢谢!
答案 0 :(得分:0)
答案 1 :(得分:-1)
您必须先解码数据。 只是做 -
$_POST = json_decode(file_get_contents('php://input'), true);
以下是完整的解释 - https://stackoverflow.com/a/39508364/5400741