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开发模式(简写版)
Mar 15 PHP
Windows 下的 PHP-PEAR 安装方法
Nov 20 PHP
PHP 获取远程网页内容的代码(fopen,curl已测)
Jun 06 PHP
Laravel 5 框架入门(四)完结篇
Apr 09 PHP
php实现根据词频生成tag云的方法
Apr 17 PHP
php类的扩展和继承用法实例
Jun 20 PHP
PHP变量赋值、代入给JavaScript中的变量
Jun 29 PHP
利用PHP fsockopen 模拟POST/GET传送数据的方法
Sep 22 PHP
修改Laravel5.3中的路由文件与路径
Aug 10 PHP
PHP文件上传、客户端和服务器端加限制、抓取错误信息、完整步骤解析
Jan 12 PHP
Laravel 集成微信用户登录和绑定的实现
Dec 27 PHP
基于PHP+Mysql简单实现了图书购物车系统的实例详解
Aug 06 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
多重?l件?合查?(二)
2006/10/09 PHP
大家在抢红包,程序员在研究红包算法
2015/08/31 PHP
又拍云异步上传实例教程详解
2016/04/19 PHP
漂亮的提示信息(带箭头)
2007/03/21 Javascript
上传的js验证(图片/文件的扩展名)
2013/04/25 Javascript
angularjs指令中的compile与link函数详解
2014/12/06 Javascript
jquery事件preventDefault()方法用法实例
2015/01/16 Javascript
在JavaScript应用中实现延迟加载的方法
2015/06/25 Javascript
js 创建对象 经典模式全面了解
2016/08/16 Javascript
JQuery和PHP结合实现动态进度条上传显示
2016/11/23 Javascript
Vue.js 父子组件通信的十种方式
2018/10/30 Javascript
jquery实现的放大镜效果示例
2020/02/24 jQuery
vue开发简单上传图片功能
2020/06/30 Javascript
基于原生js实现判断元素是否有指定class名
2020/07/11 Javascript
Python脚本判断 Linux 是否运行在虚拟机上
2015/04/25 Python
教你用Type Hint提高Python程序开发效率
2016/08/08 Python
Python实现发送QQ邮件的封装
2017/07/14 Python
Python针对给定列表中元素进行翻转操作的方法分析
2018/04/27 Python
使用python读取csv文件快速插入数据库的实例
2018/06/21 Python
深入浅析Python中list的复制及深拷贝与浅拷贝
2018/09/03 Python
Python如何使用bokeh包和geojson数据绘制地图
2020/03/21 Python
Python使用正则表达式实现爬虫数据抽取
2020/08/17 Python
Python钉钉报警及Zabbix集成钉钉报警的示例代码
2020/08/17 Python
Python pysnmp使用方法及代码实例
2020/08/24 Python
python爬虫看看虎牙女主播中谁最“顶”步骤详解
2020/12/01 Python
医学院四年学习生活的自我评价
2013/11/06 职场文书
“学雷锋活动月”总结
2014/03/09 职场文书
我的求职择业计划书
2014/04/04 职场文书
家长会演讲稿
2014/04/26 职场文书
清明节网上祭英烈活动总结
2014/04/30 职场文书
临时用工协议书范本
2014/10/29 职场文书
2015年党员承诺书
2015/01/21 职场文书
2015大学生入党个人自传
2015/06/26 职场文书
新店开业策划方案怎么书写?
2019/07/05 职场文书
情侣餐厅的创业计划书范本!
2019/07/26 职场文书
SQL SERVER实现连接与合并查询
2022/02/24 SQL Server