window.location无法在ajax表单提交回调中工作

时间:2012-11-16 04:27:18

标签: javascript html ajax forms

如果用户单击“登录”按钮,我会将表单(注册和登录)和模态背景添加到页面中。我使用jquery通过ajax提交表单。

$.post("/login",{
    "ajax":true,
    "email":$("#popup-window #login-form-email").val(),
    "password":$("#popup-window #login-form-password").val()
    },function(response){
        console.log(response);

        if(response.message=="success"){
            if(response.user.type==1){
                        console.log(window);

                        // window.location = "http://www.whatever.com/admin";
                        window[0].ownerDocument.location.href="http://www.whatever.com/admin";
                    } 
            if(response.user.type==2) window[0].ownerDocument.location.href = "http://www.whatever.com/trades";
        }else{
                $("#popup-window #login-form").append("<div id='invalid-login'>Invalid Login</div>");
            }

    },"json");

一切正常,除了

window.location = "http://www.whatever.com/admin";

并且窗口对象不是我所期望的。通过它我发现以下工作

window[0].ownerDocument.location.href="http://www.whatever.com/admin";

在我测试的所有内容中(IE7,IE8,IE9,chrome,firefox)。我不确定为什么会这样,或者这是否是正确的方法。

我对javascript和DOM相对较新,我真的很想了解这里发生了什么。

1 个答案:

答案 0 :(得分:1)

使用window.location.href = "http://www.whatever.com/admin";