我的应用程序在登录之后,所以当通过 ajax 加载数据时,我需要验证用户仍然有一个活动会话。如果用户没有活动会话,我会返回echo json_encode(array('TIMEOUT'));
which outputs ["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;
}
}