Я использую jQuerydatables и серверные скрипты с php и mysql. Я изменил сценарий, который находится здесь:datatable authentication для сценариев на стороне сервера
https://legacy.datatables.net/examples/data_sources/server_side.html
и я включил if-else, который обернут вокруг всего скрипта.
Цель состоит в том, чтобы позволить возвращать результаты, если пользователь опубликовал действительный токен из моего db.
Так что у меня этот бит установлен. Но я не уверен, как обрабатывать сообщение об ошибке пользователю.
Прямо сейчас, когда пользователь передает недействительный токен, мой сайт (используя данные) вызывает ошибочный ответ JSON.
Я предполагаю это, потому что он ожидает, что iTotalRecords и т. Д. Вернутся в JSON.
Мне интересно, знает ли кто, как этого достичь. Я не смог найти примеров.
Алгоритм:
if (postedToken exists in db){
return datatables JSON
}
else{
return json in such a way that I can provide an alert to the user that their session has expired
}
и DataTable инициализации:
"sAjaxSource": "mydatatablescript.php?token=<?php echo $token;?>
EDIT:
Я возвращался действительный JSON, но я пропускал несколько параметров, которые должны быть необходимы т.е. 'iTotalRecords' => 0, 'iTotalDisplayRecords' => 0, 'aaData' => [], 'sEcho' => 0.
Теперь я не получаю сообщение об ошибке, описанное в вопросе. Я вижу, что есть параметр «fnDrawCallback», который я могу включить в инициализацию datatable. Я подозреваю, что здесь я могу проверить свой параметр сообщения и при необходимости предупредить, но я просто не знаю, как получить доступ к JSON из этой функции?
Почему вы не возвращаете только пустой JSON? – sitilge
@sitilge Мне нужно указать пользователю, что срок их сессии истек. Это было бы иначе, если бы они искали что-то в таблице, которое не имеет результатов. т.е. таблица имеет параметр фильтра, который использует предоставленный скрипт и который не может возвращать результаты, но это не значит, что пользователь должен выйти из системы и вернуться в – user2363025
Ну, верните пустой json и проанализируйте ответ с js/jquery на клиенте боковая сторона. – sitilge