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 相关文章推荐
生成缩略图
Oct 09 PHP
dedecms后台验证码总提示错误的解决方法
Mar 21 PHP
Search File Contents PHP 搜索目录文本内容的代码
Feb 21 PHP
解析PHP 使用curl提交json格式数据
Jun 29 PHP
强制PHP命令行脚本单进程运行的方法
Apr 15 PHP
PHP轻量级数据库操作类Medoo增加、删除、修改、查询例子
Jul 04 PHP
thinkphp3.2.2前后台公用类架构问题分析
Nov 25 PHP
php结合md5实现的加密解密方法
Jan 25 PHP
yii2缓存Caching基本用法示例
Jul 18 PHP
php实现压缩合并js的方法【附demo源码下载】
Sep 22 PHP
Laravel实现短信注册的示例代码
May 29 PHP
php实现多站点共用session实现单点登录的方法详解
Sep 18 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
如何将数据从文本导入到mysql
2006/10/09 PHP
php5 图片验证码实现代码
2009/12/11 PHP
过滤掉PHP数组中的重复值的实现代码
2011/07/17 PHP
解析php中die(),exit(),return的区别
2013/06/20 PHP
PHP INT类型在内存中占字节详解
2019/07/20 PHP
鼠标经过的文本框textbox变色
2009/05/21 Javascript
jQuery实现Twitter的自动文字补齐特效
2014/11/28 Javascript
JS模式之单例模式基本用法
2015/06/30 Javascript
Bootstrap每天必学之基础排版
2015/11/20 Javascript
JavaScript Split()方法
2015/12/18 Javascript
SWFUpload多文件上传及文件个数限制的方法
2016/05/31 Javascript
移动端界面的适配
2017/01/11 Javascript
深入理解JavaScript中的for循环
2017/02/07 Javascript
Bootstrap + AngularJS 实现简单的数据过滤字符查找功能
2017/07/27 Javascript
vue 实现剪裁图片并上传服务器功能
2018/03/01 Javascript
vue封装一个简单的div框选时间的组件的方法
2019/01/06 Javascript
详解从vue-loader源码分析CSS Scoped的实现
2019/09/23 Javascript
python网页请求urllib2模块简单封装代码
2014/02/07 Python
举例详解Python中threading模块的几个常用方法
2015/06/18 Python
Python网络爬虫与信息提取(实例讲解)
2017/08/29 Python
python 寻找优化使成本函数最小的最优解的方法
2017/12/28 Python
对pandas中两种数据类型Series和DataFrame的区别详解
2018/11/12 Python
使用Python做定时任务及时了解互联网动态
2019/05/15 Python
使用python 写一个静态服务(实战)
2019/06/28 Python
django 快速启动数据库客户端程序的方法示例
2019/08/16 Python
python怎么提高计算速度
2020/06/11 Python
python七种方法判断字符串是否包含子串
2020/08/18 Python
Happy Plugs官网:瑞典无线耳机品牌
2020/07/16 全球购物
如何转换一个字符串到enum值
2014/04/12 面试题
请说出以下代码输出什么
2013/08/30 面试题
中英双版中文教师求职信
2013/10/27 职场文书
仓库组长岗位职责
2014/01/29 职场文书
工地安全检查制度
2014/02/04 职场文书
预防煤气中毒方案
2014/06/16 职场文书
日语专业求职信
2014/07/04 职场文书
CentOS MySql8 远程连接实战
2022/04/19 MySQL