0

我最近在我的用户登录页面上实现了 jquery validate。代码在 FF 和 Chrome 中运行良好,但在 IE 8 及更高版本中运行良好。

我无法弄清楚问题是什么,所以我终于屈服并决定寻求帮助

这是返回的 json -

{"REDIRECT_URL":"","ERR_MSG":"Username or password is invalid","ERR_NUM":12}

请参阅下面的提交方法,IE 在指定 url 参数的行上的 $.ajax 调用内失败。错误是SCRIPT438: Object doesn't support this property or method

提交处理程序:

function(form) {           
    if($("#user_login").valid()){
        var isValidLogin = false;
        var user = $("#username").val();
        var pwd = $("#user_password").val();

        $.ajax({
            type: 'GET',
            contentType: 'application/json; charset=utf-8',
            url: 'data_handler.php',
            data: "user=" + user + "&pwd=" + pwd,
            dataType: 'json',
            success: function (data) {
                redirect_url = data.REDIRECT_URL;
                err_msg = data.ERR_MSG;

                if(err_msg == ""){
                    location.href = redirect_url;
                            isValidLogin = true;
                }
                else{
                    if(redirect_url != ""){
                        location.href = redirect_url;
                    }
                    else{
                        $('#err_alert').show(); 
                        $('#err_alert').html(err_msg);
                    }

                    isValidLogin = false;
                }
            },
            error:function(){ }
        });

    }
    else{
        return false;
    }
    return false;
}
4

1 回答 1

0

错误的行号会有所帮助。但无论如何你应该声明你的变量:

 success: function (data) {
                var redirect_url = data.REDIRECT_URL;
                var err_msg = data.ERR_MSG;

可能发生的是返回的 json 不包含您提到的属性 REDIRECT_URL 和/或 ERR_MSG。

您可以通过直接导航到 data_handler.php?user=youruser&pwd=yourpwd 来测试 json 是否正确

Chrome 和 FF 也可能在控制台中显示错误。

更新如果错误在这一行:

data: "user=" + user + "&pwd=" + pwd,

也许你应该在上面设置一个变量来测试它。IE。:

var info = "user=" + user + "&pwd=" + pwd;

结合:

data: info,
于 2013-04-02T23:10:24.037 回答