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的FTP学习(二)[转自奥索]
Oct 09 PHP
一个改进的UBB类
Oct 09 PHP
PHP中MD5函数使用实例代码
Jun 07 PHP
PHP 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数
Apr 09 PHP
ThinkPHP CURD方法之order方法详解
Jun 18 PHP
php隐藏实际地址的文件下载方法
Apr 18 PHP
php实现递归的三种基本方式
Jul 04 PHP
PHP使用pear实现mail发送功能 windows环境下配置pear
Apr 15 PHP
PHP实现根据数组的值进行分组的方法
Apr 20 PHP
PHPExcel中文帮助手册|PHPExcel使用方法(分享)
Jun 09 PHP
PHP实现微信模拟登陆并给用户发送消息的方法【文字,图片,图文】
Jun 29 PHP
Laravel下生成验证码的类
Nov 15 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
tp5(thinkPHP5)框架连接数据库的方法示例
2018/12/24 PHP
jQuery的一些注意
2006/12/06 Javascript
jQuery ReferenceError: $ is not defined 错误的处理办法
2013/05/10 Javascript
JS中获取数据库中的值的方法
2013/07/14 Javascript
编写js扩展方法判断一个数组中是否包含某个元素
2013/11/08 Javascript
JS中如何判断传过来的JSON数据中是否存在某字段
2014/08/18 Javascript
node.js中的console.error方法使用说明
2014/12/10 Javascript
Javascript动态创建div的方法
2015/02/09 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记6)
2015/12/20 Javascript
原生js实现autocomplete插件
2016/04/14 Javascript
所见即所得的富文本编辑器bootstrap-wysiwyg使用方法详解
2016/05/27 Javascript
基于JQuery实现的跑马灯效果(文字无缝向上翻动)
2016/12/02 Javascript
VUE JS 使用组件实现双向绑定的示例代码
2017/01/10 Javascript
vue init webpack myproject构建项目 ip不能访问的解决方法
2018/03/20 Javascript
vue数据传递--我有特殊的实现技巧
2018/03/20 Javascript
Vue.js 实现微信公众号菜单编辑器功能(一)
2018/05/08 Javascript
详解微信小程序获取当前时间及日期的方法
2019/04/28 Javascript
layui点击数据表格添加或删除一行的例子
2019/09/12 Javascript
解决nuxt 自定义全局方法,全局属性,全局变量的问题
2020/11/05 Javascript
利用Python演示数型数据结构的教程
2015/04/03 Python
使用Python装饰器在Django框架下去除冗余代码的教程
2015/04/16 Python
Python日期的加减等操作的示例
2017/08/15 Python
Python实现猜年龄游戏代码实例
2020/03/25 Python
离线状态下在jupyter notebook中使用plotly实例
2020/04/24 Python
django 连接数据库出现1045错误的解决方式
2020/05/14 Python
Python如何使用PIL Image制作GIF图片
2020/05/16 Python
Python Merge函数原理及用法解析
2020/09/16 Python
Pycharm快捷键配置详细整理
2020/10/13 Python
HTML5拖放效果的实现代码
2016/11/17 HTML / CSS
国外平面设计素材网站:The Hungry JPEG
2017/03/28 全球购物
美国健康和保健平台:healtop
2020/07/02 全球购物
几个人围成一圈的问题
2013/09/26 面试题
教师远程培训感言
2014/03/06 职场文书
个人务虚会发言材料
2014/10/20 职场文书
小学生安全教育广播稿
2014/10/20 职场文书
红色影片观后感
2015/06/18 职场文书