我是AJAX的新手,使用AJAX和PHP创建一个简单的登录系统。我的JSON响应显示为RedisSerializer
长度为6.问题在哪里,我该如何解决?
AJAX
select * order by xxx
登录-response.php
true↵
答案 0 :(得分:-1)
根据我的评论:json_encode(true)
不会返回有效的JSON。相反,您将需要编码各种类型的数组。有很多方法可以做到这一点,但一种方法是简单地编码一个['success' => true]
的数组,换句话说:
session_start();
$user_email = $_POST['user_email'];
$user_password = $_POST['password'];
if ($user_email == 'admin' && $user_password == '123') {
$_SESSION['user_session'] = $user_email;
echo json_encode(array('success' => true));
}
else {
echo json_encode(array('success' => false, 'message' => 'email or password does not exist.'));
}
请注意,您还应编码失败消息,因为您的jQuery希望以JSON格式接收内容。
在jQuery逻辑中收到此响应后,您只需检查响应是否具有值为true的成功对象,即:
$.ajax({
type: 'POST',
url: 'login-response.php',
data: data,
dataType: 'json'
})
.done(function(response) {
if (response.success) {
$("#btn-login").html('<img src="btn-ajax-loader.gif" /> Signing In ...');
setTimeout(' window.location.href = "demo.php"; ', 4000);
} else {
$("#error").fadeIn(1000, function() {
// Your error message is accessible via `response.message`
$("#error").html('<div class="alert alert-danger"> <span class="glyphicon glyphicon-info-sign"></span> ' + response.message + ' !</div>');
$("#btn-login").html('<span class="glyphicon glyphicon-log-in"></span> Sign In');
});
}
});
一些注意事项:
response.success
访问请求状态。当然,根据个人喜好,您可以选择退回退出状态,例如使用退出代码(0
表示正常,0
以外的任何内容均表示错误)response.message
p / s:请记住,jqXHR.success
方法已被弃用!请改用jqXHR.done()
;)