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+MySQL的聊天室设计
Oct 09 PHP
谷歌音乐搜索栏的提示功能php修正代码
May 09 PHP
PHP实现异步调用方法研究与分享
Oct 27 PHP
php自动获取关键字的方法
Jan 06 PHP
php支付宝手机网页支付类实例
Mar 04 PHP
PHP使用redis实现统计缓存mysql压力的方法
Nov 14 PHP
PHP与服务器文件系统的简单交互
Oct 21 PHP
Zend Framework分发器用法示例
Dec 11 PHP
PHP使用strrev翻转中文乱码问题的解决方法
Jan 13 PHP
php对象工厂类完整示例
Aug 09 PHP
thinkphp框架表单数组实现图片批量上传功能示例
Apr 04 PHP
Yii框架小部件(Widgets)用法实例详解
May 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
《魔兽世界》惊魂幻象将获得调整
2020/03/08 其他游戏
关于文本留言本的分页代码
2006/10/09 PHP
php中将数组转成字符串并保存到数据库中的函数代码
2013/09/29 PHP
php计算数组不为空元素个数的方法
2014/01/27 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
2017/11/14 PHP
ThinkPHP3.2框架自带分页功能实现方法示例
2019/05/13 PHP
Visual Studio中的jQuery智能提示设置方法
2010/03/27 Javascript
25个优雅的jQuery Tooltip插件推荐
2011/05/25 Javascript
用客户端js实现带省略号的分页
2013/04/27 Javascript
jquery 操作两个select实现值之间的互相传递
2014/03/07 Javascript
js中字符串编码函数escape()、encodeURI()、encodeURIComponent()区别详解
2016/04/01 Javascript
Bootstrap实现水平排列的表单
2016/07/04 Javascript
封装获取dom元素的简单实例
2016/07/08 Javascript
AngularJS基础 ng-src 指令简单示例
2016/08/03 Javascript
Jquery AJAX POST与GET之间的区别详细介绍
2016/10/17 Javascript
JS中split()用法(将字符串按指定符号分割成数组)
2016/10/24 Javascript
jQuery源码分析之sizzle选择器详解
2017/02/13 Javascript
jQuery鼠标移动图片上实现放大效果
2017/06/25 jQuery
Vue内容分发slot(全面解析)
2017/08/19 Javascript
详解HTML5 使用video标签实现选择摄像头功能
2017/10/25 Javascript
layui导出所有数据的例子
2019/09/10 Javascript
layui问题之渲染数据表格时,仅出现10条数据的解决方法
2019/09/12 Javascript
[00:44]华丽开场!DOTA2勇士令状带来全新对阵画面
2019/05/15 DOTA
python使用PyV8执行javascript代码示例分享
2013/12/04 Python
Python 编码Basic Auth使用方法简单实例
2017/05/25 Python
Python数据分析之双色球统计两个红和蓝球哪组合比例高的方法
2018/02/03 Python
Python实现爬虫抓取与读写、追加到excel文件操作示例
2018/06/27 Python
Python3.5面向对象程序设计之类的继承和多态详解
2019/04/24 Python
python如何实现单链表的反转
2020/02/10 Python
英国时尚泳装品牌:Maru Swimwear
2019/10/06 全球购物
澳大利亚在线消费电子产品商店:TobyDeals
2020/01/05 全球购物
商场消防演习方案
2014/02/12 职场文书
初中教师德育工作总结2015
2015/05/12 职场文书
Nginx如何配置Http、Https、WS、WSS的方法步骤
2021/05/11 Servers
Python机器学习实战之k-近邻算法的实现
2021/11/27 Python
PYTHON使用Matplotlib去实现各种条形图的绘制
2022/03/22 Python