zoukankan      html  css  js  c++  java
  • Thinkphp5的ajax接口实现

    前一篇讲到thinkphp5从数据库获取数据之后赋给视图view,前一篇从数据渲染方式来说是服务端数据渲染,这一章则是浏览器端数据渲染。按照知识总结依据来划分,这是两种不同的技术场景。

    下面介绍具体的ajax接口实现代码。

    首先是html代码部分,我的访问地址为:http://app.write.com/thinkphp/public/index.php/index/index/api,这里没有省略入口文件,同时我本地的域名是app.write.com,tp5框架在thinkphp文件里面。这里采用原生ajax,没有做ie浏览器的兼容性,代码如下

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 
     4 <head>
     5     <meta charset="UTF-8">
     6     <title>ajax调用接口</title>
     7 </head>
     8 
     9 <body>
    10     11111
    11     <div id="test">
    12         
    13     </div>
    14     <script type="text/javascript">
    15     var oAjax = new XMLHttpRequest();
    16     oAjax.open('GET',"/thinkphp/public/index.php/index/index/apiapi?name=1");
    17     oAjax.onreadystatechange = function() {
    18         if (oAjax.readyState == 4) {
    19             if (oAjax.status >= 200 && oAjax.status < 300 || oAjax.status == 304) {
    20                console.log(oAjax.responseText);
    21                var data=JSON.parse(oAjax.responseText);
    22                document.getElementById("test").innerHTML=data.sex;
    23             } else {
    24                 console.log(oAjax.status);
    25             }
    26         }
    27     };
    28     oAjax.send();
    29     </script>
    30 </body>
    31 
    32 </html>

    对上述代码做一下解释,算是一个小知识点:一般来说可以将http状态代码为200作为成功的标志,此时responseText的属性的内容已经就绪。此外状态304表示请求的资源并没有被修改,可以直接使用浏览器中缓存的版本。

    至于为啥是大于200是出于兼容性的考虑,有的浏览器会报告204。

    后端代码如下,后端代码是同一个模块index下的同一个控制器下index的apiapi方法。

     1 <?php
     2 namespace appindexcontroller;
     3 //use thinkDb;
     4 use thinkController;
     5 class Index extends Controller
     6 {
     7 
     8      public function apiapi(){
     9         $name=$this->request->param();
    10         return json_encode($name);
    11         ///return "common";
    12     }
    13    
    14      public function api(){
    15        
    16         return view();
    17         ///return "common";
    18     }
    19 }

    代码首先获取ajax获取的参数,之后返回到前端。

    本文结束。

  • 相关阅读:
    图数据库查询语言
    深入探索Spring Data JPA, 从Repository 到 Specifications 和 Querydsl
    axios 浏览器内存泄露问题解决
    给Swagger换一套皮肤 Knife4j集成记录
    根据经纬度和半径计算经纬度范围
    最火 Web 前端组态软件 (可视化)
    Python-----删除给定目录下的所有文件
    Python----发送邮件yagmail
    python------将"["1","2"]"类型是字符串,转换为["1","2"]类型为列表,即eval()用法
    python----自动生成requirements.txt与导入requirements.txt中的库
  • 原文地址:https://www.cnblogs.com/zhensg123/p/8808950.html
Copyright © 2011-2022 走看看