在AJAX之后刷新页面 - 有时会失败

时间:2014-07-07 15:52:15

标签: jquery ajax refresh

我在ajax完成后使用它来刷新/重新加载页面。

$(".method").click( function() {
    if (confirm('Do  : ' + $(this).attr('method') + ' ?')) {
        $.ajax({ url : 'go.php?method=' + $(this).attr('method'),
        success: function(){
           setTimeout(function(){
           window.location = "?method=view";
            }, 100);
        }
   });
}
    return false;
});

有时它会起作用并且页面会刷新,有时ajax部分可以工作,但页面不会刷新。

始终调用go.php并正确运行。

是否要让它一直运作?

由于

2 个答案:

答案 0 :(得分:1)

我认为在ajax过程中发生了错误。将始终调用Go.php,但回复浏览器的响应显然会有所不同。您可以指定ERROR函数并执行与成功相同的操作,但您可能希望显示错误消息。

$(".method").click( function() {
    if (confirm('Do  : ' + $(this).attr('method') + ' ?')) {
        $.ajax({ url : 'go.php?method=' + $(this).attr('method'),
            success: function(){
                setTimeout(function(){
                    window.location = "?method=view";
                }, 100);
            },
            error: function(){
                setTimeout(function(){
                    window.location = "?method=view";
                }, 100);
            }
        });
    }
    return false;
});

或者,如果您不关心成功或错误,您可以使用完全,这将对两者都做同样的事。

$(".method").click( function() {
    if (confirm('Do  : ' + $(this).attr('method') + ' ?')) {
        $.ajax({ url : 'go.php?method=' + $(this).attr('method'),
            complete: function(){
                setTimeout(function(){
                    window.location = "?method=view";
                }, 100);
            }
        });
    }
    return false;
});

答案 1 :(得分:0)

尝试使用此代码:

$(".method").click( function() {
    if (confirm('Do  : ' + $(this).attr('method') + ' ?')) {
        $.ajax({
        url : 'go.php?method=' + $(this).attr('method'),
        success: function(){
        },
        complete: function() {
           setTimeout(function(){
           window.location.href = "?method=view";
           }, 100);

        }
   });
}
    return false;
});

参考:https://api.jquery.com/jQuery.ajax/complete部分)