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 相关文章推荐
Extjs TriggerField在弹出窗口显示不出问题的解决方法
Jan 08 Javascript
Firefox中autocomplete=&quot;off&quot; 设置不起作用Bug的解决方法
Mar 25 Javascript
extjs4 treepanel动态改变行高度示例
Dec 17 Javascript
jquery实现在页面加载的时自动为日期插件添加当前日期
Aug 20 Javascript
innerHTML属性,outerHTML属性,textContent属性,innerText属性区别详解
Mar 13 Javascript
JavaScript中的toLocaleDateString()方法使用简介
Jun 12 Javascript
bootstrap模态框消失问题的解决方法
Dec 02 Javascript
js如何获取网页所有图片
May 12 Javascript
JavaScript中三个等号和两个等号你了解多少
Jul 04 Javascript
js导出Excel表格超出26位英文字符的解决方法ES6
Nov 15 Javascript
Openlayers实现图形绘制
Sep 28 Javascript
JavaScript实现班级抽签小程序
May 19 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
php下HTTP Response中的Chunked编码实现方法
2008/11/19 PHP
用PHP将网址字符串转换成超链接(网址或email)
2010/05/25 PHP
Php中用PDO查询Mysql来避免SQL注入风险的方法
2013/04/25 PHP
PHP常用的三种设计模式
2017/02/17 PHP
JQueryEasyUI datagrid框架的基本使用
2013/04/08 Javascript
js控制的遮罩层实例介绍
2013/05/29 Javascript
JavaScript程序员应该知道的45个实用技巧
2014/03/04 Javascript
jquery实现弹出层登录和全屏层注册特效
2015/08/28 Javascript
jQuery无刷新分页完整实例代码
2015/10/27 Javascript
jquery背景跟随鼠标滑动导航
2015/11/20 Javascript
悬浮广告方法日常收集整理
2016/03/18 Javascript
JS模拟bootstrap下拉菜单效果实例
2016/06/17 Javascript
BootStrap按钮标签及基本样式
2016/11/23 Javascript
微信小程序 devtool隐藏的秘密
2017/01/21 Javascript
Angular.JS中的指令引用template与指令当做属性详解
2017/03/30 Javascript
初识NodeJS服务端开发入门(Express+MySQL)
2017/04/07 NodeJs
浅谈ajax请求不同页面的微信JSSDK问题
2018/02/26 Javascript
bootstrapTable+ajax加载数据 refresh更新数据
2018/08/31 Javascript
微信小程序自定义导航栏
2018/12/31 Javascript
JQuery常用简单动画操作方法回顾与总结
2019/12/07 jQuery
[03:58]2014DOTA2国际邀请赛 龙宝赛后解密DK获胜之道
2014/07/14 DOTA
Python装饰器(decorator)定义与用法详解
2018/02/09 Python
python关于矩阵重复赋值覆盖问题的解决方法
2019/07/19 Python
浅析Windows 嵌入python解释器的过程
2019/07/26 Python
浅析PyTorch中nn.Module的使用
2019/08/18 Python
使用Python画出小人发射爱心的代码
2019/11/23 Python
布隆过滤器的概述及Python实现方法
2019/12/08 Python
BrandAlley英国:法国折扣奢侈品网上零售商
2017/07/03 全球购物
来自世界各地的饮料:Flavourly
2019/05/06 全球购物
企业安全隐患排查治理制度
2015/08/05 职场文书
幼儿园大班教师随笔
2015/08/14 职场文书
女方家长婚礼答谢词
2015/09/29 职场文书
感恩信:写给爸爸妈妈的一封感谢信
2019/09/12 职场文书
Python读取文件夹下的所有文件实例代码
2021/04/02 Python
MySQL 如何设计统计数据表
2021/06/15 MySQL
一文搞懂Redis中String数据类型
2022/04/03 Redis