确定,
我需要使用ajax来制作一些花哨的弹出窗口和验证内容,但如果表格中的所有内容都可以,我希望避免使用javascript重定向。
这是基本简单的场景。
我们有动态网站和一些用户登录表单。 Al逻辑(用户存在,密码是否等)在服务器端。
服务器伪代码如下所示:
$username,$password; //form user input
if (authenicate($user,$password)){
redirect('myaccount');
}
else {
print 'Wrong username and/or password'; //this should be displayed in the popup.
}
现在,如果我使用ajax来显示打印的服务器,如何告诉前端将重定向留给服务器端??
我以愚蠢的方式解决了这个问题(因为我有大约15种不同的形式)。如果答案表单服务器是“LOGGED”,我使用javascript重定向。
提到我使用jQuery和这个插件http://malsup.com/jquery/form/。 一些示例代码在这里: http://pastie.org/584993
我相信你会明白我需要的东西,我会赞美所有的建议和答案:) 谢谢!
答案 0 :(得分:3)
将JSON发回给客户端。具有Status参数,Message参数和Url参数。成功时将Status设置为true,将Url设置为要指向的页面。出错时,将状态设置为False,将消息设置为错误消息。在客户端,使用状态来确定是重定向还是弹出消息
$.ajax({
url: '/login.php',
dataType: 'json',
data: $('form').serialize(),
type: 'post',
success: function(data) {
if (data.Status) {
location.href = data.Url;
}
else {
alert( data.Message );
}
}
});