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 调用上。我在通话之前将异步设为假,并在通话后将其设置为真。这在每种情况下都有效。

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 回答