Обработка времени ожидания сеанса при загрузке данных через ajax с помощью jquery DataTables

Мое приложение находится за входом в систему, поэтому при загрузке данных через 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 (увидеть документы а также 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;
}
}

2

Решение

После полутора дней работы над ним я наконец нашел рабочее решение, используя ajax.dataSrc (доктор)

"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');

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]