最简单的ThinkPHP实例(3)接口
2021/8/16 20:06:32
本文主要是介绍最简单的ThinkPHP实例(3)接口,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
前端人,前端魂,前端最常打交道就是接口,来吧,用php撸两个~
1、html部分
application\index\view\index\index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <!-- 开发环境版本,包含了有帮助的命令行警告 --> <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script> <!-- 生产环境版本,优化了尺寸和速度 --> <!-- <script src="https://cdn.jsdelivr.net/npm/vue@2"></script> --> </head> <body> <div id="app"> <div>----------- GET方法 ------------</div> <input type="text" v-model="text" /> <button @click="get()">GET方法</button> <div>GET方法返回值:{{ getRes }}</div> <br/> <div>----------- POST方法 ------------</div> <input type="text" v-model="text2" /> <button @click="post()">POST方法</button> <div>POST方法返回值:{{ postRes }}</div> </div> <script src="https://unpkg.com/axios/dist/axios.min.js"></script> <script src="/js/qs.js"></script> <script> var axiosAjax = axios.create({ baseURL:'/', // <---- 这里使用 qs 转换参数 transformRequest: [function (data) { // 转换数据 data = Qs.stringify(data); // 通过Qs.stringify转换为表单查询参数 return data; }], headers:{ 'Content-Type':'application/x-www-form-urlencoded' } }) var app = new Vue({ el: '#app', data: { text: '', getRes: '', text2: '', postRes: '' }, methods: { get(){ // get方法 axios.get('/index/index/user?text='+this.text) .then( (response) => { console.log(response); this.getRes = response.data }) .catch( (error) => { console.log(error); }); }, post(){ // post方法 axiosAjax.post('/index/index/user_post', { text: this.text2 }) .then( (response) => { console.log(response); this.postRes = response.data }) .catch( (error) => { console.log(error); }); } } }) </script> </body> </html>
2、控制器部分
<?php namespace app\index\controller; // 引入系统数据类 use think\Db; // 引入系统控制器类 use think\Controller; class Index extends Controller { public function index() { return view(); } public function user() { // print_r($_GET); $a = [ "data" => "我是GET返回值", "text" => "用户输入了:".$_GET["text"] ]; // json_encode是转换成json字符串 第二个参数是解决中文乱码问题 return json_encode($a, JSON_UNESCAPED_UNICODE); } public function user_post() { // 获取payload json数据,转换成数组形式 // $postData = file_get_contents('php://input'); // $requests = !empty($postData) ? json_decode($postData, true) : array(); // print_r($requests); $a = [ "data" => "我是POST返回值", "text" => "用户输入了:".$_POST["text"] ]; // json_encode是转换成json字符串 第二个参数是解决中文乱码问题 return json_encode($a, JSON_UNESCAPED_UNICODE); } }
要注意的是axios为post方法时,传参是payload方式,php的$_POST是获取不到参数的
所以前端要转换一下参数,变成form-data,代码参考html部分的transofmrRequest。
参考文档:
QS.js:https://github.com/ljharb/qs(直接引入时引入dist文件夹中的qs.js)
payload问题参考:Vue使用axios POST提交数据PHP却无法接收到参数?
3、效果
这篇关于最简单的ThinkPHP实例(3)接口的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-11开源 PHP 商城项目 CRMEB 二次开发和部署教程
- 2024-11-09怎么使用php在kaufland平台刊登商品?-icode9专业技术文章分享
- 2024-11-05PHP的抽象类和接口是什么,有什么区别-icode9专业技术文章分享
- 2024-11-01开源 PHP 商城项目 CRMEB 安装和使用教程
- 2024-11-01用php和mysql写无限分类,有哪几种方法-icode9专业技术文章分享
- 2024-10-31php数据分表导出时部分数据无法导出什么原因-icode9专业技术文章分享
- 2024-10-30有经验的 PHP 开发者学习一门新的编程语言,有哪些推荐的有前景的语言-icode9专业技术文章分享
- 2024-10-21php 检测图片是否篡改过-icode9专业技术文章分享
- 2024-10-20fruitcake/php-cors 该怎么使用-icode9专业技术文章分享
- 2024-10-18PHP7.1可以使用哪个版本的swoole-icode9专业技术文章分享