所以早些时候我问了这个问题:JQuery Login Redirect. Code Included
php文件正在发送以下内容:
$return['error'] = false;
$return['msg'] = 'You have successfully logged in!!';
我已经尝试了所有的建议,引用了php和ajax结尾的错误,2等于而不是3,我也尝试过DNE,这应该和else语句一样:
$(document).ready(function(){
$('#submit').click(function() {
$('#waiting').show(500);
$('#empty').show(500);
$('#reg').hide(0);
$('#message').hide(0);
$.ajax({
type : 'POST',
url : 'logina.php',
dataType : 'json',
data: {
type : $('#typeof').val(),
login : $('#login').val(),
pass : $('#pass').val(),
},
success : function(data){
$('#waiting').hide(500);
$('#empty').show(500);
$('#message').removeClass().addClass((data.error === true) ? 'error' : 'success')
.text(data.msg).show(500)
if(data.error != true)
window.location.replace("http://blahblah.com/usercp.php");
if (data.error === true)
$('#reg').show(500);
$('#empty').hide()
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
$('#waiting').hide(500);
$('#message').removeClass().addClass('error')
.text("There was an Error. Please try again.").show(500);
$('#reg').show(500);
$('#empty').hide();
Recaptcha.reload();
}
});
return false;
});
它仍然无法运作。如果登录成功并且错误返回false,有关如何进行重定向的任何想法?另外,在我问的时候,我可以在.delay(3000)
的末尾添加window.location.replace("http://blahblah.com/usercp.php")
3吗?
答案 0 :(得分:1)
您的jQuery代码指定dataType是JSON,因此您的PHP应该返回:
{
"error": false,
"msg": "You have successfully logged in!!"
}
答案 1 :(得分:1)
为了考虑所有选项,你可以在php脚本中调用echo json_encode($return);
吗?
此外,对于延迟,我会说将代码置于setTimeout()
调用中以在3000毫秒内运行。