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 相关文章推荐
发布BlueShow v1.0 图片浏览器(类似lightbox)blueshow.js 打包下载
Jul 21 Javascript
jQuery 标题的自动翻转实现代码
Oct 14 Javascript
基于dom编程中 动态创建与删除元素的使用
Apr 17 Javascript
JavaScript中实现PHP的打乱数组函数shuffle实例
Oct 11 Javascript
Javascript验证Visa和MasterCard信用卡号的方法
Jul 27 Javascript
跟我学习javascript的异步脚本加载
Nov 20 Javascript
基于javascript实现精确到毫秒的倒计时限时抢购
Apr 17 Javascript
JS实现字符串转驼峰格式的方法
Dec 16 Javascript
详解Vue学习笔记入门篇之组件的内容分发(slot)
Jul 17 Javascript
jquery radio 动态控制选中失效问题的解决方法
Feb 28 jQuery
微信小程序image图片加载完成监听
Aug 31 Javascript
Node.js+Vue脚手架环境搭建的方法步骤
Mar 08 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开发入门教程之面向对象
2006/12/05 PHP
php var_export与var_dump 输出的不同
2013/08/09 PHP
ThinkPHP Mobile使用方法简明教程
2014/06/18 PHP
php中smarty区域循环的方法
2015/06/11 PHP
讲解WordPress开发中一些常用的debug技巧
2015/12/18 PHP
PHP实现的XML操作类【XML Library】
2016/12/29 PHP
php微信开发之图片回复功能
2018/06/14 PHP
PHP读取目录树的实现方法分析
2019/03/22 PHP
简单JS代码压缩器
2006/10/12 Javascript
简短几句 通俗解释javascript的闭包
2011/01/17 Javascript
js中widow.open()方法使用详解
2013/07/30 Javascript
jquery+json实现数据列表分页示例代码
2013/11/15 Javascript
基于jquery异步传输json数据格式实例代码
2013/11/23 Javascript
jquery制作居中遮罩层效果分享
2014/02/21 Javascript
js改变embed标签src值的方法
2015/04/10 Javascript
JS中的THIS和WINDOW.EVENT.SRCELEMENT详解
2015/05/25 Javascript
跟我学习javascript的for循环和for...in循环
2015/11/18 Javascript
js获取iframe中的window对象的实现方法
2016/05/20 Javascript
浅谈如何实现easyui的datebox格式化
2016/06/12 Javascript
jquery无法为动态生成的元素添加点击事件的解决方法(推荐)
2016/12/26 Javascript
详解VueJs中的V-bind指令
2018/05/03 Javascript
使用javascript函数编写简单银行取钱存钱流程
2018/05/26 Javascript
Jquery实现获取子元素的方法分析
2019/08/24 jQuery
layui操作列按钮个数和文字颜色的判断实例
2019/09/11 Javascript
Vue 如何使用props、emit实现自定义双向绑定的实现
2020/06/05 Javascript
vue 限制input只能输入正数的操作
2020/08/05 Javascript
jQuery实现容器间的元素拖拽功能
2020/12/01 jQuery
JavaScript实现原型封装轮播图
2020/12/27 Javascript
用Python实现将一张图片分成9宫格的示例
2019/07/05 Python
在pycharm中为项目导入anacodna环境的操作方法
2020/02/12 Python
压铸汽车模型收藏家:Diecastmodelswholesale.com
2016/12/21 全球购物
ALDI奥乐齐官方海外旗舰店:德国百年超市
2017/12/27 全球购物
摄影专业毕业生求职信
2014/08/05 职场文书
爱国主题班会教案
2015/08/14 职场文书
PostgreSQL将数据加载到buffer cache中操作方法
2021/04/16 PostgreSQL
python数据库批量插入数据的实现(executemany的使用)
2021/04/30 Python