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 操作文件的一些FAQ总结
Feb 12 PHP
PHP 文件上传全攻略
Apr 28 PHP
利用Memcached在php下实现session机制 替换PHP的原生session支持
Aug 21 PHP
php学习笔记之面向对象编程
Dec 29 PHP
ThinkPHP的L方法使用简介
Jun 18 PHP
ThinkPHP实现跨模块调用操作方法概述
Jun 20 PHP
js代码实现微博导航栏
Jul 30 PHP
PHP的文件操作与算法实现的面试题示例
Aug 10 PHP
几行代码轻松实现PHP文件打包下载zip
Mar 01 PHP
thinkPHP框架中执行事务的方法示例
May 31 PHP
PHP封装类似thinkphp连贯操作数据库Db类与简单应用示例
May 08 PHP
php给数组赋值的实例方法
Sep 26 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 cookie 登录验证示例代码
2009/03/16 PHP
CI框架中$this-&gt;load-&gt;library()用法分析
2016/05/18 PHP
thinkphp实现分页显示功能
2016/12/03 PHP
浅谈ThinkPHP中initialize和construct的区别
2017/04/01 PHP
Yii框架的路由配置方法分析
2019/09/09 PHP
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之二
2011/12/31 Javascript
载入jQuery库的最佳方法详细说明及实现代码
2012/12/28 Javascript
JS自动适应的图片弹窗实例
2013/06/29 Javascript
js利用prototype调用Array的slice方法示例
2014/06/09 Javascript
js贪吃蛇网页版游戏特效代码分享(挑战十关)
2015/08/24 Javascript
javascript中的previousSibling和nextSibling的正确用法
2015/09/16 Javascript
JavaScript修改作用域外变量的方法
2016/03/25 Javascript
jquery遍历table的tr获取td的值实现方法
2016/05/19 Javascript
Ajax跨域实现代码(后台jsp)
2017/01/21 Javascript
AngularJS实现根据不同条件显示不同控件
2017/04/20 Javascript
React中使用collections时key的重要性详解
2017/08/07 Javascript
vue router返回到指定的路由的场景分析
2020/11/10 Javascript
Python输出PowerPoint(ppt)文件中全部文字信息的方法
2015/04/28 Python
在Python的Django框架中编写错误提示页面
2015/07/22 Python
在类Unix系统上开始Python3编程入门
2015/08/20 Python
Python爬虫获取整个站点中的所有外部链接代码示例
2017/12/26 Python
用Django实现一个可运行的区块链应用
2018/03/08 Python
python 利用浏览器 Cookie 模拟登录的用户访问知乎的方法
2019/07/11 Python
python多线程+代理池爬取天天基金网、股票数据过程解析
2019/08/13 Python
python协程gevent案例 爬取斗鱼图片过程解析
2019/08/27 Python
TensorFlow获取加载模型中的全部张量名称代码
2020/02/11 Python
python如何判断IP地址合法性
2020/04/05 Python
使用Python实现NBA球员数据查询小程序功能
2020/11/09 Python
Html5新标签datalist实现输入框与后台数据库数据的动态匹配
2017/05/18 HTML / CSS
思想政治教育专业个人求职信范文
2013/12/20 职场文书
农业资源与环境专业自荐信范文
2013/12/30 职场文书
大学生涯自我鉴定
2014/01/16 职场文书
国培计划培训感言
2014/03/11 职场文书
精神文明单位申报材料
2014/05/02 职场文书
商场促销活动策划方案
2014/08/18 职场文书
个人政风行风自查自纠报告
2014/10/21 职场文书