详解Vuejs2.0之异步跨域请求


Posted in Javascript onApril 20, 2017

Vuejs由1.0更新到了2.0版本。HTTP请求官方也从推荐使用Vue-Resoure变为了axios。接下来我们来简单地用axios进行一下异步请求。(阅读本文作者默认读者具有使用npm命令的能力,以及具备ES6的能力,以及等等。。。)

首先我们来安装Vue-Cli开发模板(这个模板可以快速生成vuejs的运行配置环境,可以使新手快速免除配置搭建出运行界面),这里我使用cnpm命令,请自行百度配置。

打开命令窗口:

cnpm install -g vue-cli

详解Vuejs2.0之异步跨域请求

等待片刻,即可安装完毕。

然后新建一个Vuejs项目

vue init webpack axiosproject

详解Vuejs2.0之异步跨域请求

切换到项目目录,执行命令:

cnpm install axios --save --dev

详解Vuejs2.0之异步跨域请求

最后执行命令安装项目所需依赖:

cnpm install

详解Vuejs2.0之异步跨域请求

稍等片刻,即可完成。现在我们来跑一下用Vue-Cli搭建出来的项目,执行命令:

cnpm run dev

自动浏览器自动弹出这个界面就说明上面的步骤我们成功实现了。

详解Vuejs2.0之异步跨域请求

接下来我才来真正的开始用编辑器来使用axios。打开VS Code(编辑器请自行用自己喜欢的,本人软粉,所以首选VS Code),我们来改造一下main.js入口文件

import Vue from 'vue'
import App from './App'
import axios from 'axios'
Vue.prototype.$http = axios;
/* eslint-disable no-new */
new Vue({
 el: '#app',
 template: '<App/>',
 components: { App }
})

详解Vuejs2.0之异步跨域请求

我们引用了axios,再将axios这个对象clone到Vue的$http这个属性上,以后我们就可以在其他组件里使用axios来进行 异步请求了。不多说了,我们最终的结果就是将请求的数据打印到浏览器控制台就算成功了。我使用的接口是本地模拟的,不过区别不大。这里特别说明一下关于跨域,跨域需要配置返回的请求头,在asp.core做如下处理,其他后端配置可以参照;

详解Vuejs2.0之异步跨域请求

这是Get接口返回在浏览器返回结果:

详解Vuejs2.0之异步跨域请求

好,接下来我们在Hello.vue这个组件里写一些脚本

<script>
export default {
 name: 'hello',
 data () {
 return {
  msg: 'Welcome to Your Vue.js App'
 }
 },
 created:function(){
 this.HelloAxios();
 },
 methods:{
 HelloAxios(){
  this.$http.get('http://localhost:54903/api/values').then(m=>console.log(m.data));
 }
 }
}
</script>

详解Vuejs2.0之异步跨域请求

至此我们完成了Get请求,接下来,我们完成Post请求

<script>
export default {
 name: 'hello',
 data () {
 return {
  msg: 'Welcome to Your Vue.js App'
 }
 },
 created:function(){
 this.HelloAxios();
 this.HelloAxiosPost('HelloAxiosPost');
 },
 methods:{
 HelloAxios(){
  this.$http.get('http://localhost:54903/api/values').then(m=>console.log(m.data));
 },
 HelloAxiosPost(val){
  let str = 'value='+val
  this.$http.post('http://localhost:54903/api/values',str).then(m=>console.log(m.data));
 }
 }
}
</script>

详解Vuejs2.0之异步跨域请求

结果如图,我们传的值'HelloAxiosPost'也打印出来了。有人可能会问

 详解Vuejs2.0之异步跨域请求

这里问什么要这么写,官方文档是这么写的

详解Vuejs2.0之异步跨域请求

亲测这样写不行。有兴趣的朋友可以自行测试。那我们再来说说为何是那个字符串

详解Vuejs2.0之异步跨域请求

查看chorme F12查看一下网络请求,发现我们请求的值就是Form Data。这样我们就可以拼接参数请求了,多参数格式为param1=value1¶m2=value2。

好了,至此本文结束了,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery 弹出登录窗口实现代码
Dec 24 Javascript
15 个 JavaScript Web UI 库
May 19 Javascript
js如何判断不同系统的浏览器类型
Oct 28 Javascript
node.js正则表达式获取网页中所有链接的代码实例
Jun 03 Javascript
jquery网页回到顶部效果(图标渐隐,自写)
Jun 16 Javascript
jQuery实现点击小图显示大图代码分享
Aug 25 Javascript
Bootstrap模态框水平垂直居中与增加拖拽功能
Nov 09 Javascript
实现div滚动条默认最底部以及默认最右边的示例代码
Nov 15 Javascript
JS动态插入脚本和插入引用外部链接脚本的方法
May 21 Javascript
微信小程序CSS3动画下拉菜单效果
Nov 04 Javascript
JS 遍历 json 和 JQuery 遍历json操作完整示例
Nov 11 jQuery
详解webpack-dev-middleware 源码解读
Mar 23 Javascript
bootstrap3 dialog 更强大、更灵活的模态框
Apr 20 #Javascript
angularjs过滤器--filter与ng-repeat配合有奇效
Apr 20 #Javascript
JS简单判断字符在另一个字符串中出现次数的2种常用方法
Apr 20 #Javascript
bootstrap常用组件之头部导航实现代码
Apr 20 #Javascript
基于JavaScript实现活动倒计时效果
Apr 20 #Javascript
微信小程序-横向滑动scroll-view隐藏滚动条
Apr 20 #Javascript
jquery将标签元素的高设为屏幕的百分比
Apr 19 #jQuery
You might like
php学习笔记之面向对象编程
2012/12/29 PHP
分割GBK中文遭遇乱码的解决方法
2013/08/09 PHP
使用淘宝IP库获取用户ip地理位置
2013/10/27 PHP
php实现递归的三种基本方式
2020/07/04 PHP
基于thinkPHP实现的微信自定义分享功能示例
2016/09/23 PHP
laravel5.4利用163邮箱发送邮件的步骤详解
2017/09/22 PHP
PHP常见加密函数用法示例【crypt与md5】
2019/01/27 PHP
js使用数组判断提交数据是否存在相同数据
2013/11/27 Javascript
鼠标左键单击冲突的问题解决方法(防止冒泡)
2014/05/14 Javascript
javascript判断数组内是否重复的方法
2015/04/21 Javascript
Jquery easyui开启行编辑模式增删改操作
2016/01/14 Javascript
浅谈js的html元素的父节点,子节点
2016/08/06 Javascript
select隐藏选中值对应的id,显示其它id的简单实现方法
2016/08/25 Javascript
实例解析jQuery工具函数
2016/12/01 Javascript
关于express与koa的使用对比详解
2018/01/25 Javascript
Vue2.0子同级组件之间数据交互方法
2018/02/28 Javascript
vue 实现数字滚动增加效果的实例代码
2018/07/06 Javascript
JavaScript实现移动端弹窗后禁止滚动
2020/05/25 Javascript
vue 实现锚点功能操作
2020/08/10 Javascript
Vue实现随机验证码功能
2020/12/29 Vue.js
[01:57]2018年度DOTA2最具潜力解说-完美盛典
2018/12/16 DOTA
[07:54]DOTA2-DPC中国联赛 正赛 iG vs VG 选手采访
2021/03/11 DOTA
python实现根据图标提取分类应用程序实例
2014/09/28 Python
Python 由字符串函数名得到对应的函数(实例讲解)
2017/08/10 Python
Django框架之登录后自定义跳转页面的实现方法
2019/07/18 Python
TensorFlow keras卷积神经网络 添加L2正则化方式
2020/05/22 Python
python 自动识别并连接串口的实现
2021/01/19 Python
css3 线性渐变和径向渐变示例附图
2014/04/08 HTML / CSS
HTML5视频支持检测(检查浏览器是否支持视频播放)
2013/06/08 HTML / CSS
软件测试面试题
2014/01/05 面试题
结婚典礼证婚词
2014/01/11 职场文书
三年级语文教学反思
2014/02/01 职场文书
《骑牛比赛》教后反思
2014/04/22 职场文书
《李广射虎》教学反思
2014/04/27 职场文书
关于运动会的广播稿(10篇)
2014/09/12 职场文书
python非标准时间的转换
2021/07/25 Python