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 03 PHP
php shell超强免杀、减少体积工具实现代码
Oct 16 PHP
使用PHP计算两个路径的相对路径
Jun 14 PHP
php使浏览器直接下载pdf文件的方法
Nov 15 PHP
php面象对象数据库操作类实例
Dec 02 PHP
laravel 5 实现模板主题功能
Mar 02 PHP
PHP从FLV文件获取视频预览图的方法
Mar 12 PHP
php检测url是否存在的方法
Apr 14 PHP
CodeIgniter多语言实现方法详解
Jan 20 PHP
CI框架整合smarty步骤详解
May 19 PHP
PHP实现微信JS-SDK接口选择相册及拍照并上传的方法
Dec 05 PHP
php+croppic.js实现剪切上传图片功能
Aug 14 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程序中的常见漏洞进行攻击(上)
2006/10/09 PHP
在同一窗体中使用PHP来处理多个提交任务
2008/05/08 PHP
坏狼的PHP学习教程之第1天
2008/06/15 PHP
CodeIgniter配置之routes.php用法实例分析
2016/01/19 PHP
Thinkphp5.0框架的Db操作实例分析【连接、增删改查、链式操作等】
2019/10/11 PHP
jQuery动态地获取系统时间实现代码
2013/05/24 Javascript
jQuery图片轮播的具体实现
2013/09/11 Javascript
jQuery中的pushStack实现原理和应用实例
2015/02/03 Javascript
使用angularjs创建简单表格
2016/01/21 Javascript
JS组件系列之使用HTML标签的data属性初始化JS组件
2016/09/14 Javascript
js实现日历的简单算法
2017/01/24 Javascript
Angular5给组件本身的标签添加样式class的方法
2018/04/07 Javascript
vue2.0实现的tab标签切换效果(内容可自定义)示例
2019/02/11 Javascript
详解vue-cli3多环境打包配置
2019/03/28 Javascript
vue图片加载失败时用默认图片替换的方法
2019/08/29 Javascript
Emberjs 通过 axios 下载文件的方法
2019/09/03 Javascript
关于layui表单中按钮自动提交的解决方法
2019/09/09 Javascript
详解React路由传参方法汇总记录
2020/11/29 Javascript
[04:52]2015国际邀请赛LGD战队晋级之路
2015/08/14 DOTA
Python的lambda匿名函数的简单介绍
2013/04/25 Python
深入剖析Python的爬虫框架Scrapy的结构与运作流程
2016/01/20 Python
使用python编写简单的小程序编译成exe跑在win10上
2018/01/15 Python
Java与Python两大幸存者谁更胜一筹呢
2018/04/12 Python
获取python的list中含有重复值的index方法
2018/06/27 Python
django框架CSRF防护原理与用法分析
2019/07/22 Python
pytorch神经网络之卷积层与全连接层参数的设置方法
2019/08/18 Python
python字典与json转换的方法总结
2020/12/28 Python
旅游管理专业生自荐信范文
2014/01/02 职场文书
妈妈活动方案
2014/08/15 职场文书
信息与工商管理职业规划范文:为梦想而搏击
2014/09/11 职场文书
政风行风评议个人心得体会
2014/10/29 职场文书
检察院起诉书
2015/05/20 职场文书
2015年依法治校工作总结
2015/07/27 职场文书
2016年艾滋病宣传活动总结
2016/04/01 职场文书
祝福语集锦:朋友新店开业祝福语
2019/12/10 职场文书
一级电子管军用接收机测评
2022/04/05 无线电