我想配置全局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();
答案 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
范围内触发的。