1

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

我想检查所有 ajax 响应文本,可以吗?

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

“再见”是通过动作发送的。

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

$(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 关键字,但不会调用 to byebye()

有什么解决办法吗?

byebye() 的执行完成但没有执行 window.location();

4

2 回答 2

1

window.location.replace() 在某些浏览器上什么都不做。您必须为 window.location 分配值,这是重定向页面的正确方法,如下所示:

window.location = newUrl;

也许您可以尝试使用 ajaxComplete() 全局函数回调来查看发生了什么。

$(document).ready(function () {
    $(this).on('ajaxComplete',byebye);
});
于 2012-10-29T13:27:48.813 回答
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

于 2012-10-29T13:45:29.400 回答