Codeigniter在ajax分页中出现问题

时间:2019-03-11 15:24:37

标签: javascript ajax codeigniter pagination

我在codeigniter中使用ajax分页,并从以下链接获取代码 https://makitweb.com/how-to-create-ajax-pagination-in-codeigniter/

演示链接在这里 https://makitweb.com/demo/codeigniter_pagination_ajax/
该代码工作正常。它使用对控制器的ajax调用,并且控制器以json格式返回数据。 但是我发现了它的一个缺陷,并且在Google以及这个平台上搜索了很多东西,现在问专家如何摆脱它。 缺点是,当我复制任何页面的链接而不是单击页面号时。并分别打开url,然后显示表的整个架构以及表中的数据,这是有人可以窃取整个数据的安全漏洞,示例链接在此处 https://makitweb.com/demo/codeigniter_pagination_ajax/index.php/User/loadRecord/3
视图在这里

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?>
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">

    <style type="text/css">
    a {
      padding-left: 5px;
      padding-right: 5px;
      margin-left: 5px;
      margin-right: 5px;
    }
    </style>
  </head> 
  <body>

   <!-- Posts List -->
   <table border='1' width='100%' style='border-collapse: collapse;' id='postsList'>
     <thead>
      <tr>
        <th>S.no</th>
        <th>Title</th>
        <th>Content</th>
      </tr>
     </thead>
     <tbody></tbody>
   </table>

   <!-- Paginate -->
   <div style='margin-top: 10px;' id='pagination'></div>

   <!-- Script -->
   <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
   <script type='text/javascript'>
   $(document).ready(function(){

     // Detect pagination click
     $('#pagination').on('click','a',function(e){
       e.preventDefault(); 
       var pageno = $(this).attr('data-ci-pagination-page');
       loadPagination(pageno);
     });

     loadPagination(0);

     // Load pagination
     function loadPagination(pagno){
       $.ajax({
         url: '<?=base_url()?>index.php/User/loadRecord/'+pagno,
         type: 'get',
         dataType: 'json',
         success: function(response){
            $('#pagination').html(response.pagination);
            createTable(response.result,response.row);
         }
       });
     }

     // Create table list
     function createTable(result,sno){
       sno = Number(sno);
       $('#postsList tbody').empty();
       for(index in result){
          var id = result[index].id;
          var title = result[index].title;
          var content = result[index].content;
          content = content.substr(0, 60) + " ...";
          var link = result[index].link;
          sno+=1;

          var tr = "<tr>";
          tr += "<td>"+ sno +"</td>";
          tr += "<td><a href='"+ link +"' target='_blank' >"+ title +"</a></td>";
          tr += "<td>"+ content +"</td>";
          tr += "</tr>";
          $('#postsList tbody').append(tr);

        }
      }
    });
    </script>
  </body>
</html>

0 个答案:

没有答案