2

Chrome で奇妙なバグに直面しています。このコードは、Firefox で正常に動作します。

$.ajax({
    url: someurl,
    type: 'POST',
    data: {},
    headers: headers,
    success: function(data) {
        if (data.href) {
            // create cookies
            if (manager) {
                window.location.href = "/index.html";
            } else if (admin) {
                window.location.href = "/admin.html";
            } else {
                window.location.href = "/tester.html";
            }
        }
    },
    error: function(data) {
        $('#error').html("Invalid username or password.");
    }
});

ページの URL が someurl/index.html に変更され、多数の ajax 呼び出しがある場合、href は即座に変更されますが、すべてのデータが読み込まれた後、ページは someurl/index.html にリダイレクトされます。

4

2 に答える 2

2

問題を特定し、解決策を考え出しました。

問題は非同期 ajax 呼び出しにありました。呼び出しの前に非同期を false にし、呼び出しの後に true に設定しました。これはあらゆる場合に機能しました。

async = false;

$.ajax({
    url: someurl,
    type: 'POST',
    data: {},
    async : false,
    headers: headers,
    success: function(data) {
        if (data.href) {
            // create cookies
            if (manager) {
                window.location.href = "/index.html";
            } else if (admin) {
                window.location.href = "/admin.html";
            } else {
                window.location.href = "/tester.html";
            }
        }
    },
    error: function(data) {
        $('#error').html("Invalid username or password.");
    }
});
async = true;
于 2013-06-06T06:01:08.267 に答える
0

このようにajax呼び出しを実行します

$(window).load(function() {
  // ajax call 
});
于 2013-01-03T07:02:15.140 に答える