[前后端分离项目]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 第 ...
随机推荐
- CodeForces 339D Xenia and Bit Operations (线段树)
题意:给定 2的 n 次方个数,对这些数两个两个的进行或运算,然后会减少一半的数,然后再进行异或运算,又少了一半,然后再进行或运算,再进行异或,不断重复,到最后只剩下一个数,要输出这个数,然后有 m ...
- vCenter Server Heartbeat
1.简介 vCenter Server Heartbeat为VMware vCenter Server提供关键任务高可用性,保护虚拟基础架构免受硬件.网络.配置等的影响,基于Windows的服务,可为 ...
- C#函数式程序设计之惰性列表工具——迭代器
有效地处理数据时当今程序设计语言和框架的一个任务..NET拥有一个精心构建的集合类系统,它利用迭代器的功能实现对数据的顺序访问. 惰性枚举是一个迭代方法,其核心思想是只在需要的时候才去读取数据.这个思 ...
- svn(subversion)代码管理
想必大家现在都比较喜欢使用svn(subversion)完成代码管理了,因为它的开源,轻巧,易用.但是这样一个宝贝如果不知道其正确的用法,也会让我们百思不得其解,甚至耽误项目进度,浪费程序员的心血和结 ...
- C++语言运算符的功能、优先级和结合性
优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[常量表达式] 左到右 () 圆括号 (表达式)/函数名(形参表) . 成员选择(对象) 对象.成员名 -& ...
- 构造复杂Lambda困惑之学会用LinqPad和Linqer实现Sql 和 Lambda之间的互转
一:linq的话我们可能会遇到两个问题: 1. 我们的linq出现性能低下的时候,如果优化???? 我们写的linq所生成的sql是无法控制的... (要做性能优化,必须预先知道sql会生成啥样的?? ...
- Java == 和 equals 比较
在初学Java时,可能会经常碰到下面的代码: 1 String str1 = new String("hello"); 2 String str2 = new String(&qu ...
- php以不同名字下载同一个文件(x-sendfile) 【转】
1.linux 下nginx默认支持x-sendfile模式 Nginx 默认支持该特性,不需要加载额外的模块.需要发送的 HTTP 头为 X-Accel-Redirect.另外,需要在配置文件中做以 ...
- layui后台框架的搭建
layui(谐音:类UI) 是一款采用自身模块规范编写的前端 UI 框架,遵循原生 HTML/CSS/JS 的书写与组织形式,门槛极低,拿来即用.其外在极简,却又不失饱满的内在,体积轻盈,组件丰盈,从 ...
- zTree动态加载
@{ Layout = null;} <!DOCTYPE html> <html><head> <meta name="viewport" ...