1

コールバック関数を起動する前に、リダイレクトが完了するまで jquery\javascript で待機できるかどうか疑問に思っていました。

私のコードは以下のようになります。投稿がユーザーにログインするためのコールバックまではすべて問題ありません。検証が完了すると、残念ながらその時点でページがリダイレクトされ、投稿リクエストが成功のコールバック関数を起動するため、終了しますリダイレクト先のページではなく、「ページのリダイレクト..」を取得します。

$(document).ready(function(){   
    $("#submit").click(function(){
        var url = "https://domain/login";

        $.ajax({
            url: url,
            type: "GET",
            dataType: "html",
            success: onGetFormSuccess,
            error: function(data) {
                alert('failed.');
            }
        });
    }); 

    function onGetFormSuccess(data) {
        var url = "https://domain/login";
        var parser = new DOMParser();
        doc = parser.parseFromString(data, "text/html");

        var inputs = doc.getElementById("formid").getElementsByTagName("input");
        var params = new Object();

        for (var i = 0; i < inputs.length; i++) {               
            if (inputs[i].name == "user")
                params[inputs[i].name] = $("#username").val();
            else if (inputs[i].name == "pass")
                params[inputs[i].name] = $("#password").val();
            else 
                params[inputs[i].name] = inputs[i].value;
        }

        $.ajax({
            url: url,
            type: "POST",
            data: params,
            success: onLoginSuccess,
            error: function(data) {
                alert('failed.');
            }
        });
     }

     function onLoginSuccess(data) {
         alert(data);
     }
});
4

0 に答える 0