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 相关文章推荐
一个用于mysql的数据库抽象层函数库
Oct 09 PHP
怎样在PHP中通过ADO调用Asscess数据库和COM程序
Oct 09 PHP
dedecms系统常用术语汇总
Apr 03 PHP
PHP中文汉字验证码
Apr 08 PHP
php 文件上传系统手记
Oct 26 PHP
url decode problem 解决方法
Dec 26 PHP
PHP调用Linux的命令行执行文件压缩命令
Jan 27 PHP
php中通过curl检测页面是否被百度收录
Sep 27 PHP
php生成xml时添加CDATA标签的方法
Oct 17 PHP
PHP中上传文件打印错误错误类型分析
Apr 14 PHP
PHP使用Session实现上传进度功能详解
Aug 06 PHP
yii2.0框架实现上传excel文件后导入到数据库的方法示例
Apr 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 长文章分页函数 带使用方法,不会分割段落,翻页在底部
2009/10/22 PHP
PHP大小写问题:函数名和类名不区分,变量名区分
2013/06/17 PHP
PHP base64编码后解码乱码的解决办法
2014/06/19 PHP
在laravel框架中实现封装公共方法全局调用
2019/10/14 PHP
用javascript动态调整iframe高度的代码
2007/04/10 Javascript
JS调用CS里的带参方法实例
2013/08/01 Javascript
Js放到HTML文件中的哪个位置有什么区别
2013/08/21 Javascript
直接拿来用的15个jQuery代码片段
2015/09/23 Javascript
Javascript之String对象详解
2016/06/08 Javascript
标准的js无缝滚动效果
2016/08/30 Javascript
js实现登录验证码
2016/12/22 Javascript
JS实现获取图片大小和预览的方法完整实例【兼容IE和其它浏览器】
2017/04/24 Javascript
JavaScript限制在客户区可见范围的拖拽(解决scrollLeft和scrollTop的问题)(2)
2017/05/17 Javascript
vue 系列——vue2-webpack2框架搭建踩坑之路
2017/12/22 Javascript
vue组件文档(.md)中如何自动导入示例(.vue)详解
2019/01/25 Javascript
es6 symbol的实现方法示例
2019/04/02 Javascript
js通过循环多张图片实现动画效果
2019/12/19 Javascript
git使用.gitignore设置不生效或不起作用问题的解决方法
2017/06/01 Python
Python内存管理方式和垃圾回收算法解析
2017/11/11 Python
python2.7+selenium2实现淘宝滑块自动认证功能
2018/02/24 Python
解决已经安装requests,却依然提示No module named requests问题
2018/05/18 Python
使用Python的Dataframe取两列时间值相差一年的所有行方法
2018/07/10 Python
Python实现八皇后问题示例代码
2018/12/09 Python
python实现tail实时查看服务器日志示例
2019/12/24 Python
简单了解Java Netty Reactor三种线程模型
2020/04/26 Python
拿来就用!Python批量合并PDF的示例代码
2020/08/10 Python
css3中transition属性详解
2014/09/02 HTML / CSS
程序集与命名空间有什么不同
2014/07/25 面试题
什么是索引指示器
2012/08/20 面试题
小学毕业寄语大全
2014/04/03 职场文书
中餐厅经理岗位职责
2014/04/11 职场文书
卫生院健康教育实施方案
2014/06/07 职场文书
检察院院长群众路线教育实践活动个人整改措施
2014/10/04 职场文书
新员工考核评语
2014/12/31 职场文书
Tomcat用户管理的优化配置详解
2022/03/31 Servers
HttpClient实现文件上传功能
2022/08/14 Java/Android