0

以下の JavaScript 関数では、firebug 'windows.location' を使用して行ごとにデバッグすると、完全に機能し、指定されたリンクにリダイレクトされます。しかし、firebug を使用してデバッグせずに実行すると、パスワードとユーザー名が正しい場合でも、ページのリダイレクトは発生しません。誰でも理由を説明できますか?

<script type="text/javascript">
    $(document).ready(function () {
        $('#btnSubmit').click(function () {
            var uname = $('#txtUserName').val();
            var Password = $('#txtPassword').val();
            if (uname != null && Password != null) {
                $.ajax({
                    type: "get",
                  data: { type: "login", Uname: uname, Pword: Password,ran:Math.random() },
                    contentType: "application/json",
                    url:"/CreatePdf.ashx",
                    success: function (result) {
                      if(result=='1')
                      {
                        window.location = "/home.aspx";
                      }
                    }
                });
            }
            else {
                document.getElementById('spPassword').innerHTML = "Please Enter Username/Password";
            }
        });
      });
</script>
4

1 に答える 1

1

success 関数が呼び出されない (ajax の問題のため) か、result引数が string ではありません"1"。何が起こっているのかを確認するための水晶玉がないため、自分でデバッグする必要があります。

$.ajax({
    …,
    success: function (result) {
        console.log("result: ", result);
        if(result=='1')
             window.location = "/home.aspx";
    },
    error: function(jqXHR, status, error) {
        console.log("Ajax failed with "+status+" due to "+error);
    }
);

また、開発者ツールのネットワーク パネルを使用して、サーバーが予期した応答を送信したかどうかを確認します。

于 2013-01-07T20:48:17.853 に答える