Vue请求JSON Server服务器数据的实现方法


Posted in Javascript onNovember 02, 2018

由于这里是在之前这篇文章的基础上进行稍加修改完成的,因而其绝大部分代码与上面的是一样的,而其不同之处在于,其请求数据的数据源不是来源于json文件,而是来自于后台的数据。此处的后台服务器中的数据由JSON Server所提供。

注意事项

json的数据结构

这是之前所请求的json数据:

{
 "status":0
,"message":[
 {
 "id":1
 ,"name":"张三"
 }
,{
 "id":2
 ,"name":"李四"
 }
]
}

如果我们直接使用之前所使用的json数据,其在JSON Server中执行下面命令启动服务器:

json-server db.json

在控制台中我们会看到,其是会报错的,其报的错误代码如下:

\{^_^}/ hi!
 Loading db.json
 Done
 Type of "status" (number) in db.json is not supported. Use objects or arrays of objects.

上面的意思是说,在status后面不应该直接跟数字0而是应该跟一个Object对象或者是数组对象。之所以出现这种情况,其主要是因为在JSON Server的json顶级对象中,其是不允许直接跟字符串或数字的,而是应该跟Object对象或者是数组对象。

所以说上面的json数据应该修改如下:

{
 "people": {
 "status": {
 "status": 0
 },
 "message": [
 {
 "id": 1,
 "name": "张三"
 },
 {
 "id": 2,
 "name": "李四"
 }
 ]
 }
}

现在再次执行下面的代码启动服务器:

json-server db.json

其启动后的结果如下:

\{^_^}/ hi!
 Loading db.json
 Done
 Resources
 http://localhost:3000/status
 http://localhost:3000/message
 Home
 http://localhost:3000
 Type s + enter at any time to create a snapshot of the database

我们可以看到,现在JSON Server已经启动成功!

请求的url地址

我们在这里不能直接使用http://localhost:3000的请求地址,然后再获取响应信息后直接点出来,原因如下:

Vue请求JSON Server服务器数据的实现方法

从这里,我们可以看到,我们所获取的实际上返回的是一个页面,我们是不能对页面直接点出来数据然后再操作的。即我们如果在响应结果中使用res.body,其返回的结果为:

Vue请求JSON Server服务器数据的实现方法

此时我们访问的url地址应该为:

http://localhost:3000/people

其响应后的结果为:

Vue请求JSON Server服务器数据的实现方法

从这里我们可以看出,这才是我们所期望得到的结果。

从后台获取vue-resource的数据源

基本上,在上面两点注意事项修改完成后,下面的代码就可以运行了,因而这里就不必再多说了,直接上完整源码:

源码

.html源码

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>vue-router</title>
</head>
<body>
<div id="app">
 <ul>
 <li v-for="item in list">{{item.name}}</li>
 </ul>
</div>
<script src="../../../../js/vue/vue/1.0/vue.js"></script>
<script src="../../../../js/vue/vue-resource/1.2.1/vue-resource.js"></script>
<script type="application/javascript">
 var vm = new Vue({
 el:'#app'
 ,data:{
 list:[]
 }
 ,created(){
 this.getData();
 }
 ,methods:{
 getData(){
 var url = 'http://localhost:3000/people';
 this.$http.get(url).then(function(res){
  var body = res.body;
  if(!body.status){
  alert('请求出错!');
  }
  this.list = body.message;
 });
 }
 }
 });
</script>
</body>
</html>

db.json源码:

{
 "people": {
 "status": {
 "status": 0
 },
 "message": [
 {
 "id": 1,
 "name": "张三"
 },
 {
 "id": 2,
 "name": "李四"
 }
 ]
 }
}

运行结果

Vue请求JSON Server服务器数据的实现方法

总结

以上所述是小编给大家介绍的Vue请求JSON Server服务器数据的实现方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript 设计模式之单体模式 面向对象学习基础
Apr 18 Javascript
js中判断用户输入的值是否为空的简单实例
Dec 23 Javascript
js中哈希表的几种用法总结
Jan 28 Javascript
jquery动感漂浮导航菜单代码分享
Apr 15 Javascript
Node.js重新刷新session过期时间的方法
Feb 04 Javascript
jQuery UI仿淘宝搜索下拉列表功能
Jan 10 Javascript
JS禁止浏览器右键查看元素或按F12审查元素自动关闭页面示例代码
Sep 07 Javascript
input type=file 选择图片并且实现预览效果的实例
Oct 26 Javascript
React Native日期时间选择组件的示例代码
Apr 27 Javascript
微信小程序实现点击按钮后修改颜色
Dec 05 Javascript
JS实现吸顶特效
Jan 08 Javascript
vue结合el-upload实现腾讯云视频上传功能
Jul 01 Javascript
详解使用element-ui table组件的筛选功能的一个小坑
Nov 02 #Javascript
如何使用vuex实现兄弟组件通信
Nov 02 #Javascript
JavaScript 复制对象与Object.assign方法无法实现深复制
Nov 02 #Javascript
vue头部导航动态点击处理方法
Nov 02 #Javascript
angular6 利用 ngContentOutlet 实现组件位置交换(重排)
Nov 02 #Javascript
vue单页面实现当前页面刷新或跳转时提示保存
Nov 02 #Javascript
BootStrap中的模态框(modal,弹出层)功能示例代码
Nov 02 #Javascript
You might like
利用递归把多维数组转为一维数组的函数
2006/10/09 PHP
简单的php新闻发布系统教程
2014/05/09 PHP
php简单中奖算法(实例)
2017/08/15 PHP
PHP内部实现打乱字符串顺序函数str_shuffle的方法
2019/02/14 PHP
asp.net下利用js实现返回上一页的实现方法小集
2009/11/24 Javascript
基于jquery的一个图片hover的插件
2010/04/24 Javascript
JS代码放在head和body中的区别分析
2011/12/01 Javascript
实用的JS正则表达式(手机号码/IP正则/邮编正则/电话等)
2013/01/11 Javascript
JavaScript中json使用自己总结
2013/08/13 Javascript
JavaScript实现在页面间传值的方法
2015/04/07 Javascript
jQuery实现文件上传进度条特效
2015/08/12 Javascript
javascript随机抽取0-100之间不重复的10个数
2016/02/25 Javascript
bootstrap读书笔记之CSS组件(上)
2016/10/17 Javascript
JS实现预加载视频音频/视频获取截图(返回canvas截图)
2017/10/09 Javascript
JS原型继承四步曲及原型继承图一览
2017/11/28 Javascript
JavaScript 隐性类型转换步骤浅析
2018/03/15 Javascript
Hexo已经看腻了,来手把手教你使用VuePress搭建个人博客
2018/04/26 Javascript
Node.js Koa2使用JWT进行鉴权的方法示例
2018/08/17 Javascript
Vue Router中应用中间件的方法
2020/08/06 Javascript
ES11屡试不爽的新特性,你用上了几个
2020/10/21 Javascript
CentOS 8.2服务器上安装最新版Node.js的方法
2020/12/16 Javascript
[01:07]DOTA2次级职业联赛 - Fpb战队宣传片
2014/12/01 DOTA
[02:51]DOTA2 Supermajor小组分组对阵抽签仪式
2018/06/01 DOTA
matplotlib 纵坐标轴显示数据值的实例
2018/05/25 Python
详解Python中的type和object
2018/08/15 Python
Scrapy框架爬取Boss直聘网Python职位信息的源码
2019/02/22 Python
python实现五子棋游戏(pygame版)
2020/01/19 Python
python3:excel操作之读取数据并返回字典 + 写入的案例
2020/09/01 Python
No module named ‘win32gui‘ 的解决方法(踩坑之旅)
2021/02/18 Python
用CSS3来实现社交分享按钮
2014/11/11 HTML / CSS
限量版运动鞋和街头服饰:TheDrop
2020/09/06 全球购物
康拓普公司Java笔面试
2016/09/23 面试题
运动会广播稿200米
2014/01/27 职场文书
开除员工通知
2015/04/22 职场文书
芙蓉镇观后感
2015/06/10 职场文书
SpringCloud项目如何解决log4j2漏洞
2022/04/10 Java/Android