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获取的参数,之后返回到前端。

    本文结束。

  • 相关阅读:
    对象类JavaSist之ClassPool
    文件修改如何简单修改Android的so文件
    进程匿名APUE学习进程间通信(1)
    添加空间ShareSDK 微博空间分享
    文件学习IOS学习:常用第三方库(GDataXMLNode:xml解析库)
    文件androidAndroid 源码文件结构
    sql数据库java连接sqlserver2005数据库
    文件数据IOS学习:ios中的数据持久化初级(文件、xml、json、sqlite、CoreData)
    拼接字符SQL语句拼接 最后一个字符多出 处理方式
    目录服务器Linux Ubuntu上架设FTP
  • 原文地址:https://www.cnblogs.com/zhensg123/p/8808950.html
Copyright © 2011-2022 走看看