Jquery,Ajax表单和重定向

时间:2009-08-15 14:30:30

标签: jquery ajax webforms

确定,

我需要使用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

我相信你会明白我需要的东西,我会赞美所有的建议和答案:) 谢谢!

1 个答案:

答案 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 );
         }
     }
 });