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 相关文章推荐
UTF8编码内的繁简转换的PHP类
Jul 09 PHP
hadoop常见错误以及处理方法详解
Jun 19 PHP
php常用ODBC函数集(详细)
Jun 24 PHP
PHP统计二维数组元素个数的方法
Nov 12 PHP
PHP中执行MYSQL事务解决数据写入不完整等情况
Jan 07 PHP
PHP扩展模块Pecl、Pear以及Perl的区别
Apr 09 PHP
php+xml实现在线英文词典之添加词条的方法
Jan 23 PHP
PHP使用curl模拟post上传及接收文件的方法
Mar 04 PHP
PHP+sqlite数据库操作示例(创建/打开/插入/检索)
May 26 PHP
php的debug相关函数用法示例
Jul 11 PHP
thinkphp5.0自定义验证规则使用方法
Nov 16 PHP
Thinkphp5.0 框架Model模型简单用法分析
Oct 11 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
mysql 字段类型说明
2007/04/27 PHP
php简单判断文本编码的方法
2015/07/30 PHP
举例讲解PHP面对对象编程的多态
2015/08/12 PHP
php删除数组中重复元素的方法
2015/12/22 PHP
php有效防止图片盗用、盗链的两种方法
2016/11/01 PHP
php对接java现实加签验签的实例
2016/11/25 PHP
地震发生中逃生十大法则
2008/05/12 Javascript
js 匿名调用实现代码
2009/06/19 Javascript
JavaScript学习笔记记录我的旅程
2012/05/23 Javascript
jquery 提示信息显示后自动消失的具体实现
2013/12/18 Javascript
js中unicode转码方法详解
2015/10/09 Javascript
javascript实现tab切换的两个实例
2015/11/05 Javascript
微信小程序 五星评分(包括半颗星评分)实例代码
2016/12/14 Javascript
bootstrap警告框使用方法解析
2017/01/13 Javascript
微信小程序 devtool隐藏的秘密
2017/01/21 Javascript
Angular 4依赖注入学习教程之ValueProvider的使用(七)
2017/06/04 Javascript
从零开始搭建webpack+react开发环境的详细步骤
2018/05/18 Javascript
ES6知识点整理之函数数组参数的默认值及其解构应用示例
2019/04/17 Javascript
[05:02][DOTA2]DOTA进化论 第一期
2013/09/27 DOTA
Windows8下安装Python的BeautifulSoup
2015/01/22 Python
在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程
2015/04/25 Python
python:批量统计xml中各类目标的数量案例
2020/03/10 Python
PyQt5 文本输入框自动补全QLineEdit的实现示例
2020/05/13 Python
Python实现哲学家就餐问题实例代码
2020/11/09 Python
html5 实现客户端验证上传文件的大小(简单实例)
2016/05/15 HTML / CSS
Willer台湾:日本高速巴士/夜行巴士预约
2017/07/09 全球购物
Camille Jewelry官网:现代女性时尚首饰
2019/07/07 全球购物
汽车技术服务英文求职信范文
2014/01/02 职场文书
大学生关于奋斗的演讲稿
2014/01/09 职场文书
学习党代会心得体会
2014/09/05 职场文书
工作失职检讨书(精华篇)
2014/10/15 职场文书
机关干部作风建设剖析材料
2014/10/23 职场文书
2015年世界环境日演讲稿
2015/03/18 职场文书
关于成立领导小组的通知
2015/04/23 职场文书
一个成功的互联网创业项目,必须满足这些要求
2019/08/23 职场文书
MySQL 全文检索的使用示例
2021/06/07 MySQL