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速度全攻略
Oct 09 PHP
PHP array 的加法操作代码
Jul 24 PHP
PHP连接sql server 2005环境配置及问题解决
Aug 08 PHP
phpmyadmin出现Cannot start session without errors问题解决方法
Aug 14 PHP
浅析php适配器模式(Adapter)
Nov 25 PHP
解析WordPress中控制用户登陆和判断用户登陆的PHP函数
Mar 01 PHP
php实现用户注册密码的crypt加密
Jun 08 PHP
php实现和c#一致的DES加密解密实例
Jul 24 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
Dec 25 PHP
PHP中abstract(抽象)、final(最终)和static(静态)原理与用法详解
Jun 05 PHP
如何在PHP中使用数组
Jun 09 PHP
php中配置文件保存修改操作 如config.php文件的读取修改等操作
May 12 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中文分词的简单实现代码分享
2011/07/17 PHP
linux系统上支持php的 iconv()函数的方法
2011/10/01 PHP
PHP实现XML与数据格式进行转换类实例
2015/07/29 PHP
PHP合并discuz用户脚本的方法
2015/08/04 PHP
php tpl模板引擎定义与使用示例
2019/08/09 PHP
浅析PHP中json_encode与json_decode的区别
2020/07/15 PHP
8个超棒的学习 jQuery 的网站 推荐收藏
2011/04/02 Javascript
javascript之with的使用(阿里云、淘宝使用代码分析)
2016/10/11 Javascript
JavaScript 实现的checkbox经典实例分享
2016/10/16 Javascript
微信公众号 摇一摇周边功能开发
2016/12/08 Javascript
JS操作xml对象转换为Json对象示例
2017/03/25 Javascript
关于Vue.nextTick()的正确使用方法浅析
2017/08/25 Javascript
vue中路由验证和相应拦截的使用详解
2017/12/13 Javascript
vue-content-loader内容加载器的使用方法
2018/08/05 Javascript
微信小程序生成分享海报方法(附带二维码生成)
2019/03/29 Javascript
使用layui前端框架弹出form表单以及提交的示例
2019/10/25 Javascript
微信小程序 SOTER 生物认证DEMO 指纹识别功能
2019/12/13 Javascript
js+canvas实现刮刮奖功能
2020/09/13 Javascript
[05:06]DOTA2-DPC中国联赛 正赛 VG vs Magma选手采访
2021/03/11 DOTA
1 行 Python 代码快速实现 FTP 服务器
2018/01/25 Python
python使用RNN实现文本分类
2018/05/24 Python
Python实现的字典排序操作示例【按键名key与键值value排序】
2018/12/21 Python
python实现微信每日一句自动发送给喜欢的人
2019/04/29 Python
python3获取当前目录的实现方法
2019/07/29 Python
Django之使用内置函数和celery发邮件的方法示例
2019/09/16 Python
Python tkinter实现图片标注功能(完整代码)
2019/12/08 Python
python如何从键盘获取输入实例
2020/06/18 Python
应届生船舶驾驶求职信
2013/10/19 职场文书
会计毕业生求职简历的自我评价
2013/10/20 职场文书
客服专员岗位职责
2014/02/28 职场文书
英语求职信范文
2014/05/23 职场文书
单位委托书格式范本
2014/09/29 职场文书
MySQL基础(二)
2021/04/05 MySQL
如何使用php生成zip压缩包
2021/04/21 PHP
只用Python就可以制作的简单词云
2021/06/07 Python
部分武汉产收音机展览
2022/04/07 无线电