datatable ajax datasrc,用jQuery DataTable通过ajax加载数据时处理会话超时

我的应用程序处于登录状态,因此在通过ajax加载数据时,我需要验证用户是否仍处于活动状态.如果用户没有活动的会话,则返回echo json_encode(array(‘TIMEOUT’));输出[“ TIMEOUT”].如何阅读该回复并将用户发送回登录页面?

在早期版本的DataTables中,我能够执行以下操作:

"fnServerData": function ( sSource, aoData, fnCallback, result ) {

$.getJSON( sSource, aoData, function (json) {

if(json == "TIMEOUT")

{

window.top.location.href = "/sign_out?action=to";

return;

}

fnCallback(json)

} );

在DataTables 1.10下,fnServerData已被ajax取代(请参见docs和ajax.data).如何使用新的DataTables版本完成相同的任务?我觉得我已经接近了,但是它不起作用……可能是因为我在尝试解析响应时做错了事(我从来没有在if语句中打过针).

"ajax": {

"url": "/account/location_load",

"data": function (myJson) {

if(myJson == "TIMEOUT")

{

window.top.location.href = "/sign_out?action=to";

return;

}

return myJson;

}

}

解决方法:

经过一天半的工作,我终于找到了使用ajax.dataSrc(doc)的可行解决方案

"ajax": {

"url": "/account/location_load",

"dataSrc": function (myJson) {

if(myJson == "TIMEOUT")

{

window.top.location.href = "/sign_out?action=to";

return "";

}

return myJson.data;

}

我不知道为什么这个版本允许我阅读myJson,而另一个却没有,但是它可以工作.正常工作的PHP代码最终成为echo json_encode(‘TIMEOUT’);

标签:jquery-datatables,datatables-1-10,php,jquery

来源: https://codeday.me/bug/20191120/2046033.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值