繁体   English   中英

客户端完成后的服务器端验证

[英]Server side varification after client side done

假设我有一个登录表单,其中有两个表单元素,即用户名和密码。 但是在客户端验证中,我没有在用户名中设置必需的选项。 我的目标是在进行客户端验证之后,我想通过ajax从服务器端验证此内容,其中用户名字段将在服务器端进行验证,如果用户名为空,则php检查并以json的形式响应。 我想解析数据并显示验证错误,还显示登录身份验证错误消息是否以登录表单的形式出现在不同的div元素上。 但是无法得到这个。 请帮我解决这个问题。

$(document).ready(function(){

        // initialize validator and add the custom form submission logic
            $("#LoginForm").validator().submit(function(e) {

                    var form = $(this);

                    // client-side validation passed
                        if (!e.isDefaultPrevented()) {


                            $.ajax({
                                type: "POST",
                                url: "process.login.php",
                                data: $('#LoginForm').serialize(),
                                dataType: "json",
                                success: function(msg){

                                    if(parseInt(msg.status)==1)
                                        {   
                                            window.location=msg.txt;
                                        }
                                 }
                            });


                            // prevent default form submission logic
                            e.preventDefault();
                        }
                    });

                });

我想您想知道php(服务器)验证响应的工作方式吗?

<?php

// your validation here ...

$msg = array("status"=>1, "text"=>"some text here");

echo json_encode($msg);

这可能会有所帮助。我不得不在隐藏的form变量中欺骗您的响应,但是您应该获取消息和状态并进行处理。 还可以捕获服务器端错误。

我还按照设置方式来验证您的验证,但是您可能需要阅读有关jQuery验证程序最佳实践的文档。

http://jsfiddle.net/Xedus129/y6fA3/

ajax调用中的错误处理/成功处理:

            success: function (msg) {
                var status = parseInt(msg.status);
                var message = msg.message;
                return handleResponse(status,message);
            },

            error: function (xhr, ajaxOptions, thrownError) {
                //this is a fatal error
                alert(xhr.status);
                alert(thrownError);
            }

希望这就是您要问的问题,很难从您的问题中分辨出来。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM