在DataTables.js

时间:2019-06-23 22:02:47

标签: datatables

我目前正在将DataTables.js与使用PHP编写的服务器站点数据源一起使用。

服务器端脚本完全按照数据表的要求给出数据:

  

{“ iTotalDisplayRecords”:“ 777”,“ sEcho”:0,“ aaData”:[[row1],[row2],[row3]]}

现在,我想添加一个附加的安全层,对来自服务器的响应进行加密,并在数据表收到响应后对其进行解密。

我需要这个,因为我注意到某些客户端通过HTTPS代理工作,并且某些行的内容被错误地阻止。

我正在使用this solution作为服务器端PHP脚本,以使用openssl_encrypt给出加密的内容。

然后在客户端,我有

function datatable_init (source) {
  $.getJSON(source, function(data) {
    decryptedContent = JSON.parse(CryptoJSAesDecrypt(“password”, data));
    oTable = $(‘dtable’).dataTable({
      “bProccesing”: false,
      “bServerSide: true,
      //“sAjaxSource”: source,
      “data”: decryptedContent
      ...
    });

我不得不将”sAjaxSource”替换为”data”,因为它现在是不同的数据源类型,因此需要不同类型的数据表JSON格式:

  

{数据:[[row1],[row2],[row3]}

我无法再通过iTotalDisplayRecords

有没有办法让我将服务器端的JSON格式继续提供给数据表,但又将其作为本地JS对象/数组提供?

PS 。我的另一个想法是对表的每一行进行加密/解密,但这可能会变得更加复杂和缓慢

1 个答案:

答案 0 :(得分:1)

irb(main):001:0> puts Duvel.new 330 ml => nil 选项似乎很有帮助,因为它提供了修改通过ajax接收到的数据的可能性,因此允许您定义一个函数,该函数负责再次解密接收到的数据。在我看来,尤其是在reference page上给出的最后一个示例看起来很有希望。