检查响应文本需要什么类型的全局ajax设置?

时间:2012-10-29 13:20:59

标签: ajax jquery

我想配置全局ajax设置意味着这适用于将在此语句之后触发的所有ajax请求。

我想检查所有ajax响应文本,是否可能?

如果作为回应我会得到'再见',我想重定向到其他网址意味着登录页面。

'再见'通过行动发送。

下面是无法正常工作的示例代码。

$(document).ready(function () {

     $(this).on('ajaxComplete',byebye);

});

function byebye(e, xhr, settings){
        console.log('byebye()'+xhr.responseText);
        if(xhr.responseText=='bye')
        {
            window.location('login.jsp');
        }
}

这会在控制台上打印bye关键字,但不会调用byebye();

任何解决方案?

执行了byebye()但没有执行window.location();

2 个答案:

答案 0 :(得分:1)

window.location.replace()在某些浏览器上不执行任何操作。 您必须为window.location赋值,这是重定向页面的正确方法,如下所示:

window.location = newUrl;

也许您可以尝试使用ajaxComplete()全局函数回调来查看最新情况。

$(document).ready(function () {
    $(this).on('ajaxComplete',byebye);
});

答案 1 :(得分:0)

尝试:

$(document).ready(function () {

     $(window).on('ajaxComplete',byebye);

});

function byebye(e, xhr, settings){
        console.log('byebye()'+xhr.responseText);
        if(xhr.responseText=='bye')
        {
            window.location('login.jsp');
        }
}

分配给window对象而不是document对象可能会解决您的问题,因为我认为全局AJAX事件是在window范围内触发的。