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 相关文章推荐
jquery 实现窗口的最大化不论什么情况
Sep 03 Javascript
jquery与js函数冲突的两种解决方法
Sep 09 Javascript
JS记录用户登录次数实现代码
Jan 15 Javascript
JavaScript修改浏览器tab标题小技巧
Jan 06 Javascript
JavaScript监听和禁用浏览器回车事件实例
Jan 31 Javascript
JavaScript实现梯形乘法表的方法
Apr 25 Javascript
jQuery链式操作实例分析
Nov 16 Javascript
使用jQuery加载html页面到指定的div实现方法
Jul 13 Javascript
js调用父框架函数与弹窗调用父页面函数的简单方法
Nov 01 Javascript
vue数据双向绑定的注意点
Jun 23 Javascript
使用javaScript实现鼠标拖拽事件
Apr 03 Javascript
vue使用rem实现 移动端屏幕适配
Sep 26 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/09/05 PHP
解析zend studio中直接导入svn中的项目的方法步骤
2013/06/21 PHP
jquery制作搜狐快站页面效果示例分享
2014/02/21 Javascript
jquery实现简单的无缝滚动
2015/04/15 Javascript
JS+CSS实现仿触屏手机拨号盘界面及功能模拟完整实例
2015/05/16 Javascript
使用Meteor配合Node.js编写实时聊天应用的范例
2015/06/23 Javascript
js使用xml数据载体实现城市省份二级联动效果
2017/11/08 Javascript
jQuery实现使用sort方法对json数据排序的方法
2018/04/17 jQuery
Vue头像处理方案小结
2018/07/26 Javascript
webpack的pitching loader详解
2019/09/23 Javascript
vue 全局环境切换问题
2019/10/27 Javascript
vue实现淘宝购物车功能
2020/04/20 Javascript
vue实现购物车结算功能
2020/06/18 Javascript
Python将图片批量从png格式转换至WebP格式
2020/08/22 Python
使用Python更换外网IP的方法
2018/07/09 Python
python3 实现一行输入,空格隔开的示例
2018/11/14 Python
python识别图像并提取文字的实现方法
2019/06/28 Python
python用线性回归预测股票价格的实现代码
2019/09/04 Python
numpy np.newaxis 的实用分享
2019/11/30 Python
Python Pickle 实现在同一个文件中序列化多个对象
2019/12/30 Python
Python中的X[:,0]、X[:,1]、X[:,:,0]、X[:,:,1]、X[:,m:n]和X[:,:,m:n]
2020/02/13 Python
Python使用monkey.patch_all()解决协程阻塞问题
2020/04/15 Python
CSS3 @font-face属性使用指南
2014/12/12 HTML / CSS
英国最大的正宗复古足球衫制造商和零售商:TOFFS
2018/06/21 全球购物
英国探险旅游专家:Explore
2018/12/20 全球购物
程序集与命名空间有什么不同
2014/07/25 面试题
网络工程师面试(三木通信技术有限公司)
2013/06/05 面试题
汉语言文学毕业生自荐信范文
2014/03/24 职场文书
空气的环保标语
2014/06/12 职场文书
天地会口号
2014/06/17 职场文书
党员批评与自我批评发言材料
2014/10/14 职场文书
2014年教研工作总结
2014/12/06 职场文书
小学科学教学计划
2015/01/21 职场文书
宾馆客房管理制度
2015/08/06 职场文书
三好学生评选事迹材料(2016精选版)
2016/02/25 职场文书
MySQL数据库之内置函数和自定义函数 function
2022/06/16 MySQL