jquery validate有时候无法ajax提交的问题

程序这么写的,有时候可以走ajax提交有时候不行?这是什么原因呢?

$("#loginform").validate({
        rules: {
            loginId: {
                required: true,
                maxlength: 16
            },
            password: {
                required: true,
                maxlength: 16
            }
        },
        submitHandler: function(form)
        {
            login();
        }
    })
        function login(){
    var formData={
        loginId:$("#loginId").val(),
        password:$("#password").val(),
        rand:$("#rand").val()
    };
    $.ajax({
        url:contextPath+"/login",
        type:"post",
        dataType:"json",
        data:formData,
        success:function(data){
            if (data.status===0){
                setCookie("user",formData.loginId,7);
                setCookie("pswd",formData.password,7);
                window.location.href=contextPath+"/admin";
            }else{
                model.find(".modal-title").html("出错了!");
                model.find(".modal-body").html("<span class='text-danger'>错误代码:"+data.status+","+data.message+"</span>");
                model.modal();
                onComplete();
            }
        }
    })
}

2个回答

该问题描述不能定位问题。
首先,你要指出当检验成功后,方法是否进入到login()里边。如果每次都进入,但出现不能调用ajax,那就是login()的方法,如果出现不能调用的情况时,并没有进入
login()方法,那说明是校验的问题。你可以利用该插件的其他方法进行问题定位。

wild84
wild84 我访问的方法返回的就是登录用户的用户信息和一个status为0的json,一般返回json,如果在浏览器输入url也可以看到返回结果,我现在就是有时候在浏览器看到返回的json,而不是走判断为0则跳转这个路,我现在不确定是restful方法产生这种不稳定还是jquery的验证,还是返回的json字符串有时候浏览器无法解析,要使用eval()方法,所以不知道怎么解决
2 年多之前 回复
gjx3650
小小幽灵 回复wild84: 如果你的请求每次都是成功的,只是页面跳转的问题,那么不跳转页面的时候,应该是接口返回的值status不为0,程序走了else
2 年多之前 回复
gjx3650
小小幽灵 回复wild84: 显示的json信息内容是什么?目前看到login()调完接口之后,会对结果status做判断,等于0才跳转。如果你的
2 年多之前 回复
wild84
wild84 我的服务端有两个login路径,从resetful方式就是只要提交方式不同就可以访问.然后我前端登录有时候可以跳转到admin页面.有时候就直接显示后端返回的json信息不跳转
2 年多之前 回复

可以把login()的方法一起贴出来看看。

wild84
wild84 已经贴了,帮忙看下吧
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问