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弹出层代码
Sep 24 Javascript
一个简单的jQuery插件ajaxfileupload.js实现ajax上传文件例子
Jun 26 Javascript
node.js中的http.response.removeHeader方法使用说明
Dec 14 Javascript
js动态修改表格行colspan列跨度的方法
Mar 30 Javascript
jquery实现未经美化的简洁TAB菜单效果
Aug 28 Javascript
JavaScript中通过提示框跳转页面的方法
Feb 14 Javascript
深入浅析Vue不同场景下组件间的数据交流
Aug 15 Javascript
vue中使用iview自定义验证关键词输入框问题及解决方法
Mar 26 Javascript
vue组件与复用详解
Apr 08 Javascript
详解auto-vue-file:一个自动创建vue组件的包
Apr 26 Javascript
vue路由切换之淡入淡出的简单实现
Oct 31 Javascript
javascript递归函数定义和用法示例分析
Jul 22 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面向对象全攻略 (四)构造方法与析构方法
2009/09/30 PHP
PHP5中GD库生成图形验证码(有汉字)
2013/07/28 PHP
CI使用Tank Auth转移数据库导致密码用户错误的解决办法
2014/06/12 PHP
php中simplexml_load_file函数用法实例
2014/11/12 PHP
详解php的socket通信
2015/08/11 PHP
Yii2如何批量添加数据
2016/05/17 PHP
php连接MSsql server的五种方法总结
2018/03/04 PHP
使用Entrust扩展包在laravel 中实现RBAC的功能
2020/03/16 PHP
js调试工具 Javascript Debug Toolkit 2.0.0版本发布
2008/12/02 Javascript
Ext javascript建立超链接,进行事件处理的实现方法
2009/03/22 Javascript
Javascript 面向对象 命名空间
2010/05/13 Javascript
ASP.NET中基于JQUERY的高性能的TreeView补充
2011/02/23 Javascript
node.js中的fs.readlinkSync方法使用说明
2014/12/17 Javascript
JavaScript获取两个数组交集的方法
2015/06/09 Javascript
bootstrap table分页模板和获取表中的ID方法
2017/01/10 Javascript
JavaScript 字符串数字左补位,右补位,取固定长度,截位扩展函数代码
2017/03/25 Javascript
微信小程序实现添加手机联系人功能示例
2017/11/30 Javascript
利用CDN加速react webpack打包后的文件详解
2018/02/22 Javascript
javascript创建元素和删除元素实例小结
2019/06/19 Javascript
vue+koa2实现session、token登陆状态验证的示例
2019/08/30 Javascript
Layui给switch添加响应事件的例子
2019/09/03 Javascript
微信小程序tabBar设置实例解析
2019/11/14 Javascript
Vue中Table组件行内右键菜单实现方法(基于 vue + AntDesign)
2019/11/21 Javascript
[10:21]2018DOTA2国际邀请赛寻真——Winstrike
2018/08/11 DOTA
[53:44]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma BO3 第一场 1月31日
2021/03/11 DOTA
浅析python 内置字符串处理函数的使用方法
2014/06/11 Python
python执行CMD指令,并获取返回的方法
2018/12/19 Python
Python数据报表之Excel操作模块用法分析
2019/03/11 Python
使用Python制作简单的小程序IP查看器功能
2019/04/16 Python
Django 中自定义 Admin 样式与功能的实现方法
2019/07/04 Python
对Python中画图时候的线类型详解
2019/07/07 Python
利用Python库Scapy解析pcap文件的方法
2019/07/23 Python
Django分页功能的实现代码详解
2019/07/29 Python
python模块导入的方法
2019/10/24 Python
Java面试笔试题大全
2016/11/23 面试题
Navicat for MySQL的使用教程详解
2021/05/27 MySQL