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 相关文章推荐
PHP mkdir()定义和用法
Jan 14 PHP
PHP中include()与require()的区别说明
Mar 10 PHP
Blitz templates 最快的PHP模板引擎
Apr 06 PHP
又一个PHP实现的冒泡排序算法分享
Aug 21 PHP
php上传图片客户端和服务器端实现方法
Mar 30 PHP
php的crc32函数使用时需要注意的问题(不然就是坑)
Apr 21 PHP
浅析php设计模式之数据对象映射模式
Mar 03 PHP
windows7配置Nginx+php+mysql的详细教程
Sep 04 PHP
php无限级分类实现方法分析
Oct 19 PHP
PHP实现的Redis多库选择功能单例类
Jul 27 PHP
php递归函数怎么用才有效
Feb 24 PHP
php处理多图上传压缩代码功能
Jun 13 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开发环境配置(MySQL数据库安装图文教程)
2010/04/28 PHP
php启用sphinx全文搜索的实现方法
2014/12/24 PHP
Yii安装与使用Excel扩展的方法
2016/07/13 PHP
thinkPHP订单数字提醒功能的实现方法
2016/12/01 PHP
php实现的二分查找算法示例
2017/06/20 PHP
PHP实现的mysql主从数据库状态检测功能示例
2017/07/20 PHP
PHP获取访问设备信息的方法示例
2019/02/20 PHP
Thinkphp5框架异常处理操作实例分析
2020/06/03 PHP
JS+CSS设置img在DIV中只显示Img垂直居中的部分
2013/10/24 Javascript
JavaScript获取客户端计算机硬件及系统等信息的方法
2014/01/02 Javascript
jQuery实现输入框邮箱内容自动补全与上下翻动显示效果【附demo源码下载】
2016/09/20 Javascript
JavaScript自定义浏览器滚动条兼容IE、 火狐和chrome
2017/01/05 Javascript
Ionic3 UI组件之autocomplete详解
2017/06/08 Javascript
Three.js基础学习之场景对象
2017/09/27 Javascript
vue使用自定义icon图标的方法
2018/05/14 Javascript
Vue下拉框回显并默认选中随机问题
2018/09/06 Javascript
详解webpack模块加载器兼打包工具
2018/09/11 Javascript
Vue.js + Nuxt.js 项目中使用 Vee-validate 表单校验
2019/04/22 Javascript
Vue安装浏览器开发工具的步骤详解
2019/05/12 Javascript
基于Node.js搭建hexo博客过程详解
2019/06/25 Javascript
解决Vue打包后访问图片/图标不显示的问题
2019/07/25 Javascript
React中Ref 的使用方法详解
2020/04/28 Javascript
js简单实现自动生成表格功能示例
2020/06/02 Javascript
[01:44]剑指西雅图 展望TI之CIS战队专访
2014/06/25 DOTA
Python多进程multiprocessing用法实例分析
2017/08/18 Python
python中退出多层循环的方法
2018/11/27 Python
Python 多线程不加锁分块读取文件的方法
2018/12/11 Python
python实现诗歌游戏(类继承)
2019/02/26 Python
Python使用20行代码实现微信聊天机器人
2020/06/05 Python
解决Alexnet训练模型在每个epoch中准确率和loss都会一升一降问题
2020/06/17 Python
用CSS3将你的设计带入下个高度
2009/08/08 HTML / CSS
html5简介_动力节点Java学院整理
2017/07/07 HTML / CSS
颇特女士香港官网:NET-A-PORTER香港
2021/03/08 全球购物
2014年流动人口工作总结
2014/11/26 职场文书
教师节寄语2015
2015/03/23 职场文书
Golang Gob编码(gob包的使用详解)
2021/05/07 Golang