Thinkphp5的ajax接口实现

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

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

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

 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。java

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

 1 <?php  2 namespace app\index\controller;  3 //use think\Db;  4 use think\Controller;  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获取的参数,以后返回到前端。thinkphp

本文结束。数据库

相关文章
相关标签/搜索