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初学者头疼问题总结
Oct 09 PHP
MySQL中create table语句的基本语法是
Jan 15 PHP
提高define性能的php扩展hidef的安装和使用
Jun 14 PHP
php程序的国际化实现方法(利用gettext)
Aug 14 PHP
PHP得到某段时间区间的时间戳 php定时任务
Apr 12 PHP
PHP调用VC编写的COM组件实例
Mar 29 PHP
PHP实现连接设备、通讯和发送命令的方法
Oct 13 PHP
PHP会员找回密码功能的简单实现
Sep 05 PHP
使用phpQuery获取数组的实例
Mar 13 PHP
PHP创建文件及写入数据(覆盖写入,追加写入)的方法详解
Feb 15 PHP
PHP大文件分块上传功能实例详解
Jul 22 PHP
基于ThinkPHP删除目录及目录文件函数
Oct 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 class中self,parent,this的区别以及实例介绍
2013/04/24 PHP
PHP 使用MySQL管理Session的回调函数详解
2013/06/21 PHP
ThinkPHP关于session的操作方法汇总
2014/07/18 PHP
php实现网站文件批量压缩下载功能
2015/10/28 PHP
24条货真价实的PHP代码优化技巧
2016/07/28 PHP
javascript 日期时间函数(经典+完善+实用)
2009/05/27 Javascript
JSCode all of Brower 全局屏蔽网页右键功能 具体实现
2013/06/05 Javascript
jquery easyui combox一些实用的小方法
2013/12/25 Javascript
使用upstart把nodejs应用封装为系统服务实例
2014/06/01 NodeJs
javascript跨域方法、原理以及出现问题解决方法(详解)
2015/08/06 Javascript
jQuery支持添加事件的日历特效代码分享(3种样式)
2015/08/24 Javascript
JavaScript+html5 canvas实现图片破碎重组动画特效
2016/02/22 Javascript
深入浅出ES6新特性之函数默认参数和箭头函数
2016/08/01 Javascript
angularjs2中父子组件的数据传递的实例代码
2017/07/05 Javascript
基于Require.js使用方法(总结)
2017/10/26 Javascript
Vuejs 2.0 子组件访问/调用父组件的方法(示例代码)
2018/02/08 Javascript
又拍云 Node.js 实现文件上传、删除功能
2018/10/28 Javascript
layer关闭当前窗口页面以及确认取消按钮的方法
2019/09/09 Javascript
js利用拖放实现添加删除
2020/08/27 Javascript
[26:24]完美副总裁、DOTA2负责人蔡玮专访:电竞如人生
2014/09/11 DOTA
[38:38]完美世界DOTA2联赛PWL S3 access vs Rebirth 第二场 12.17
2020/12/18 DOTA
python33 urllib2使用方法细节讲解
2013/12/03 Python
python对字典进行排序实例
2014/09/25 Python
python  文件的基本操作 菜中菜功能的实例代码
2019/07/17 Python
Python单例模式的四种创建方式实例解析
2020/03/04 Python
解决Python3.7.0 SSL低版本导致Pip无法使用问题
2020/09/03 Python
python 使用csv模块读写csv格式文件的示例
2020/12/02 Python
CSS3 :nth-child()伪类选择器实现奇偶行显示不同样式
2013/11/05 HTML / CSS
HTML5地理定位与第三方工具百度地图的应用
2016/11/17 HTML / CSS
html5清空画布方法(三种)
2017/10/16 HTML / CSS
具有防紫外线功能的高性能钓鱼服装:Hook&Tackle
2018/08/16 全球购物
社团文化节邀请函
2014/01/10 职场文书
大学校庆邀请函
2014/01/11 职场文书
超市重阳节活动方案
2014/02/10 职场文书
小学综合实践活动总结
2014/07/07 职场文书
Nginx 过滤静态资源文件的访问日志的实现
2021/03/31 Servers