我的应用程序处于登录状态,因此在通过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’);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。