Thinkphp5框架ajax接口实现方法分析


Posted in PHP onAugust 28, 2019

本文实例讲述了Thinkphp5框架ajax接口实现方法。分享给大家供大家参考,具体如下:

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

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

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

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>ajax调用接口</title>
</head>
<body>
  11111
  <div id="test">
  </div>
  <script type="text/javascript">
  var oAjax = new XMLHttpRequest();
  oAjax.open('GET',"/thinkphp/public/index.php/index/index/apiapi?name=1");
  oAjax.onreadystatechange = function() {
    if (oAjax.readyState == 4) {
      if (oAjax.status >= 200 && oAjax.status < 300 || oAjax.status == 304) {
        console.log(oAjax.responseText);
        var data=JSON.parse(oAjax.responseText);
        document.getElementById("test").innerHTML=data.sex;
      } else {
        console.log(oAjax.status);
      }
    }
  };
  oAjax.send();
  </script>
</body>
</html>

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

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

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

<?php
namespace app\index\controller;
//use think\Db;
use think\Controller;
class Index extends Controller
{
   public function apiapi(){
    $name=$this->request->param();
    return json_encode($name);
    ///return "common";
  }
   public function api(){
    return view();
    ///return "common";
  }
}

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

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
第十一节 重载 [11]
Oct 09 PHP
聊天室php&amp;mysql(四)
Oct 09 PHP
自定义php类(查找/修改)xml文档
Mar 26 PHP
深入php常用函数的使用汇总
Jun 08 PHP
PHP生成自适应大小的缩略图类及使用方法分享
May 06 PHP
PHP利用func_get_args和func_num_args函数实现函数重载实例
Nov 12 PHP
PHP中使用GD库创建圆形饼图的例子
Nov 19 PHP
PHP获取二维数组中某一列的值集合
Dec 25 PHP
thinkphp跨库操作的简单代码实例
Sep 22 PHP
PHP实现的折半查找算法示例
Dec 19 PHP
关于laravel 日志写入失败问题汇总
Oct 17 PHP
php 的多进程操作实践案例分析
Feb 28 PHP
Thinkphp5框架实现图片、音频和视频文件的上传功能详解
Aug 27 #PHP
Thinkphp5框架使用validate实现验证功能的方法
Aug 27 #PHP
thinkPHP3.2使用RBAC实现权限管理的实现
Aug 27 #PHP
PHP如何将图片文件上传到另外一台服务器上
Aug 26 #PHP
PHP命名空间与自动加载机制的基础介绍
Aug 25 #PHP
php的命名空间与自动加载实现方法
Aug 25 #PHP
PHP7数组的底层实现示例
Aug 25 #PHP
You might like
开发大型 PHP 项目的方法
2007/01/02 PHP
php备份数据库类分享
2015/04/14 PHP
php array_merge_recursive 数组合并
2016/10/26 PHP
JavaScript中的一些定位属性[图解]
2010/07/14 Javascript
jquery实现弹出窗口效果的实例代码
2013/11/28 Javascript
js实现的点击div区域外隐藏div区域
2014/06/30 Javascript
浅谈javascript 迭代方法
2015/01/21 Javascript
基于javascript、ajax、memcache和PHP实现的简易在线聊天室
2015/02/03 Javascript
js判断主流浏览器类型和版本号的简单实现代码
2016/05/26 Javascript
JavaScript中常见内置函数用法示例
2018/05/14 Javascript
记一次Vue.js混入mixin的使用(分权限管理页面)
2019/04/17 Javascript
js计时事件实现圆形时钟
2020/03/25 Javascript
基于Vue sessionStorage实现保留搜索框搜索内容
2020/06/01 Javascript
[48:21]林俊杰圣堂刺客超神杀戮秀
2014/10/29 DOTA
Python、Javascript中的闭包比较
2015/02/04 Python
Python自定义进程池实例分析【生产者、消费者模型问题】
2016/09/19 Python
Python内置模块ConfigParser实现配置读写功能的方法
2018/02/12 Python
Python2.7环境Flask框架安装简明教程【已测试】
2018/07/13 Python
Python PIL图片添加字体的例子
2019/08/22 Python
python elasticsearch环境搭建详解
2019/09/02 Python
python命令 -u参数用法解析
2019/10/24 Python
使用Python解析Chrome浏览器书签的示例
2020/11/13 Python
如何查看python关键字
2021/01/17 Python
Python datetime模块的使用示例
2021/02/02 Python
财务助理岗位职责
2013/11/10 职场文书
会计电算化个人自我评价
2013/11/17 职场文书
大学生求职自荐信
2013/12/12 职场文书
前台文员岗位职责
2013/12/28 职场文书
广告宣传策划方案
2014/05/21 职场文书
团日活动总结模板
2014/06/25 职场文书
2014年国庆节演讲稿
2014/09/19 职场文书
村主任群众路线个人对照检查材料
2014/09/26 职场文书
大学四年个人总结
2015/03/03 职场文书
2015年企业员工工作总结范文
2015/05/21 职场文书
喋血孤城观后感
2015/06/08 职场文书
关于的python五子棋的算法
2022/05/02 Python