0

その上にログインボタン(サーバーコントロールではない)のあるログインフォームがあります。データベースでチェックアウトした後、user.aspxにログインしたい。そのため、データベースに接続してユーザー名とパスワードを確認する getlogin.aspx というページを作成しました。以下のように $.ajax でこのフォーム (つまり getlogin.aspx) を呼び出します。

 $('#btnLogin').click(function () {
        var pass = $('#txtPassword').val();
        var user = $('#txtUsername').val();
        $.ajax({
            type: 'GET',
            dataType: 'json',
            contentType: "application/json; charset=utf-8",
            url: 'get/login.aspx',
            data: { un: user, pa: pass },
            beforeSend: function () {
                $('#loader_login').addClass('loader_ajax');
            },
            success: function (jsonMsg) {
                var result = jsonMsg.loggedIn;
                if (result == "false") {
                    //show err dialog
                }
                else {
                    //redirect to user page with username as query string
                    window.open(location.host + "/" + "User.aspx?user=" + user);

                }
            },
            complete: function () {
                $('#loader_login').removeClass('loader_ajax');
            }

        });

    });

成功関数では:

    success: function (jsonMsg) {
        var result = jsonMsg.loggedIn;
        if (result == "false") {
            //show err dialog
        }
        else {
            //redirect to user page with username as query string
            window.open(location.host + "/" + "User.aspx?user=" + user);

        }

結果を確認します。すべてが正しい場所に進んでいますが、window.open がまったく機能しません。どうすれば修正できますか?

4

1 に答える 1

0

ウィンドウを開くコードに問題はありません。location.hostたとえばwww.stackoverflow.com、完全な URL が返されwww.stackoverflow.com/User.aspx?user=SomeUser、これが有効な URLになるためです。

以下のコードが正常に動作するため、新しく開いたウィンドウをブロックしているポップアップブロッカーがあると思います

//redirect to user page with username as query string
window.open(location.host + "/" + "User.aspx?user=" + user);
于 2012-07-31T20:17:04.777 に答える