我正在使用jQuerydatables和服务器端脚本与php和mysql。我修改了这里的脚本:
https://legacy.datatables.net/examples/data_sources/server_side.html
我已经包含了一个包含整个脚本的if-else。
目标是仅在用户从我的数据库中发布有效令牌时才允许返回结果。
所以我设置了那个位。但我不确定如何处理错误消息给用户。
现在,当用户传入无效令牌时,我的网站(使用数据表)会引发错误无效的JSON响应。
我假设这是因为它期待返回的JSON中的iTotalRecords等。
我想知道是否有人知道如何实现这一目标。我还没有找到任何例子。
算法:
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
}
和数据表初始化:
"sAjaxSource": "mydatatablescript.php?token=<?php echo $token;?>
修改
我正在返回一个有效的JSON,但我遗漏了一些必须要求的参数,例如'iTotalRecords' => 0, 'iTotalDisplayRecords' => 0, 'aaData' => [], 'sEcho' => 0.
现在我没有收到问题中描述的错误消息。我看到有一个&#34; fnDrawCallback&#34;参数I可以包含在数据表初始化中。我怀疑在这里我可以检查我的消息参数并在必要时发出警报,但我不知道如何从该函数中访问JSON?
答案 0 :(得分:1)
正如您已经看到的那样,如果您的客户端期望,您需要在任何情况下返回有效的json。
你可以使用例如:
之类的东西if (postedToken exists in db){
return datatables JSON
}
else{
return json_encode(array('success': false, 'message': 'session has expired'));
}
您可能应该在调用成功时添加这些相同的键/参数,以便您可以轻松地检查您的javascript函数操作的结果。