[前后端分离项目]thinkphp返回给前端数据为字符串
写在前面:现在项目大多是采用前后端分离的模式进行开发,这种模式下的开发大大的提高了工作效率,而进行前后端数据交互传输的格式基本以json为主,毕业设计中兼顾前端开发和后端开发(后端小白一个),前端业务完成后采用模块的后端开发,既能够理清楚开发过程中的流程,同时也给自己提供一个简单的逻辑思路优化逻辑,在这个过程中,考虑后端如何传递给前端json数据。开启json旅程(个人实验过程结果,有不合适的地方可以指出)
1.思想一:后端传递给前端json,直接json_encode($arr)??
贴后端代码:
public function login(){
//判断是否赋值
if(isset($_POST['stu_number']) && isset($_POST['pwd'])){
$useAccount = $_POST['stu_number'];
$password = $_POST['pwd'];
session('stu_number',$useAccount);
} else{
$arr = array('status'=>0,'msg'=>'输入账号和密码');
return json_encode($arr);
}
//省略验证逻辑步骤
$arr = array('status'=>1,'msg'=>'验证成功');
return json_encode($arr);
}
※ 在浏览器端直接用接口进行访问:发现接口直接返回的是json串 ,如图1

图1 直接用接口进行访问的后端返回数据格式
※在前端请求该接口返回的数据,如图2,浏览的是webapp 返回的数据是一个字符串,利用cordova打包的apk进行访问接口时数据格式如图3;

图2 在webapp 前端获取到数据

图3 在apk端访问时获取到数据
咦,惊呆了,在webapp和打包生成的apk 同一接口返回的数据格式竟然不一样,这与我们想要的不符合,我们在webapp浏览模式下需要将后端返回的数据转换成json数据格式,代码如下:
var data = JSON.parse(response.data);//将后端返回的数据直接用方法转
在apk端访问接口数据就不用 JSON.parse(response.data),而在hybirdapp项目中,通常是将webapp打包成apk模式,这样接口提供的数据就不统一,为打包带来繁琐的步骤;如果单纯的在webapp中,可以利用json进行需要的逻辑判断了,如果项目n多接口,n多请求,每个接口都要进行处理,未免不是一种开销,所以是比较繁琐的了。记起来自己曾经做过的一个项目,后端返回的总是字符串,鉴于是网站,始终是以web形式打开,就没细细再追究。
2:思想二,用json()进行输出【采用的方法】
后端代码:
$arr = array('status'=>1,'msg'=>'验证成功');
return json($arr);
通过验证:
[前后端分离项目]thinkphp返回给前端数据为字符串的更多相关文章
- centos7部署前后端分离项目的过程
概述 本文主要讲解在安装了centos7的Linux主机中部署前后端分离项目的过程. 前端项目名为:vue_project:后端项目名为:django_project. 将这两个项目放在/opt/wh ...
- List多个字段标识过滤 IIS发布.net core mvc web站点 ASP.NET Core 实战:构建带有版本控制的 API 接口 ASP.NET Core 实战:使用 ASP.NET Core Web API 和 Vue.js 搭建前后端分离项目 Using AutoFac
List多个字段标识过滤 class Program{ public static void Main(string[] args) { List<T> list = new List& ...
- Yii框架和Vue的完美结合完成前后端分离项目
背景说明 本文假设你对Yii和Vue都比较熟悉,至少都在项目里用过,另外笔者新人,以后不定时放一些干货,欢迎程序媛关注 Yii是一个PHP全端框架,典型的mvc的项目结构,后端接口都是一个控制器里放了 ...
- 使用 Nginx 部署前后端分离项目,解决跨域问题
前后端分离这个问题其实松哥和大家聊过很多了,上周松哥把自己的两个开源项目部署在服务器上以帮助大家可以快速在线预览(喜大普奔,两个开源的 Spring Boot + Vue 前后端分离项目可以在线体验了 ...
- 基于Vue的前后端分离项目实践
一.为什么需要前后端分离 1.1什么是前后端分离 前后端分离这个词刚在毕业(15年)那会就听说过,但是直到17年前都没有接触过前后端分离的项目.怎么理解前后端分离?直观的感觉就是前后端分开去做,即功 ...
- 如何使用Spring Securiry实现前后端分离项目的登录功能
如果不是前后端分离项目,使用SpringSecurity做登录功能会很省心,只要简单的几项配置,便可以轻松完成登录成功失败的处理,当访问需要认证的页面时,可以自动重定向到登录页面.但是前后端分离的项目 ...
- nginx+vue+uwsgi+django的前后端分离项目部署
Vue+Django前后端分离项目部署,nginx默认端口80,数据提交监听端口9000,反向代理(uwsgi配置)端口9999 1.下载项目文件(统一在/opt/luffyproject目录) (1 ...
- Spring-Gateway与Spring-Security在前后端分离项目中的实践
前言 网上貌似webflux这一套的SpringSecurity操作资料貌似很少. 自己研究了一波,记录下来做一点备忘,如果能帮到也在迷惑的人一点点,就更好了. 新项目是前后端分离的项目,前台vue, ...
- Springboot+vue前后端分离项目,poi导出excel提供用户下载的解决方案
因为我们做的是前后端分离项目 无法采用response.write直接将文件流写出 我们采用阿里云oss 进行保存 再返回的结果对象里面保存我们的文件地址 废话不多说,上代码 Springboot 第 ...
随机推荐
- vCenter Server Heartbeat
1.简介 vCenter Server Heartbeat为VMware vCenter Server提供关键任务高可用性,保护虚拟基础架构免受硬件.网络.配置等的影响,基于Windows的服务,可为 ...
- mybatis 存储过程调用
接口 UserInfoMapper.java xml UserInfoMapper.xml 如何关联 <?xml version="1.0" encoding=" ...
- C++11之Lambda特性探析
目录 目录 1 1. 什么是Lambda? 1 2. 语法格式 1 2.1. 语法格式 1 2.2. 最简定义 2 3. 应用示例 2 4. capture列表 3 4.1. 基本形式 3 4.2. ...
- mysql - 查看表字段和字段描述
1.mysql查看表字段和字段描述 SELECT column_name, column_comment FROM information_schema.columns WHERE table_sch ...
- [leetcode] 3. Pascal's Triangle
第三道还是帕斯卡三角,这个是要求正常输出,题目如下: Given numRows, generate the first numRows of Pascal's triangle. For examp ...
- SQL Server递归实例
例子一 -- ============================================= -- 根据EID返回其下属的EID,Layer=1表示直接下属,NULL返回所有下属 -- s ...
- Redis 工具类
项目里的Redis 工具类,写下来以备后用 public class RedisConnector { public class RedisParseResult<T> { public ...
- javascript AJAX简单原理及什么是ajax
AJAX简单原理供初学者理解 AJAX的原理: Ajax的原理简单来说通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据,然后用javascript来操作DOM而更新页面.这其 ...
- BZOJ.5407.girls/CF985G. Team Players(三元环计数+容斥)
题面 传送门(bzoj) 传送门(CF) \(llx\)身边妹子成群,这天他需要从\(n\)个妹子中挑出\(3\)个出去浪,但是妹子之间会有冲突,表现为\(i,j\)之间连有一条边\((i,j)\), ...
- 2,ThreadGroup 概念以及用法
当一个任务需要多个子线程去处理业务,这时候不希望这些子线程杂乱无章, 就需要把这些线程统一管理起来,这时候线程组就产生了. ThreadGroup 常用方法讲解 activeCount() 返回 ...