详解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 相关文章推荐
cssQuery()的下载与使用方法
Jan 12 Javascript
jQuery ready函数滥用分析
Feb 16 Javascript
《JavaScript DOM 编程艺术》读书笔记之DOM基础
Jan 09 Javascript
JavaScript获取当前网页最后修改时间的方法
Apr 03 Javascript
深入解析JavaScript的闭包机制
Oct 20 Javascript
vue.js实现价格格式化的方法
May 23 Javascript
ES6中javascript实现函数绑定及类的事件绑定功能详解
Nov 08 Javascript
JS计算输出100元钱买100只鸡问题的解决方法
Jan 04 Javascript
详解element-ui级联菜单(城市三级联动菜单)和回显问题
Oct 02 Javascript
Selenium执行Javascript脚本参数及返回值过程详解
Apr 01 Javascript
解决vue单页面多个组件嵌套监听浏览器窗口变化问题
Jul 30 Javascript
如何使用CocosCreator对象池
Apr 14 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 源代码压缩小工具
2009/12/22 PHP
基于php伪静态的实现详细介绍
2013/04/28 PHP
jQuery EasyUI API 中文文档 - Panel面板
2011/09/30 Javascript
js数字转换为float,取N位小数
2014/02/08 Javascript
Express作者TJ告别Node.js奔向Go
2014/07/14 Javascript
深入浅析同源策略和跨域访问
2015/11/26 Javascript
js实现图片无缝滚动
2015/12/23 Javascript
对jquery的ajax进行二次封装以及ajax缓存代理组件:AjaxCache详解
2016/04/11 Javascript
jquery获取所有选中的checkbox实现代码
2016/05/26 Javascript
vue+mockjs模拟数据实现前后端分离开发的实例代码
2017/08/08 Javascript
微信小程序实现天气预报功能
2018/07/18 Javascript
Element Input组件分析小结
2018/10/11 Javascript
vue中的mvvm模式讲解
2019/01/31 Javascript
微信小程序导航栏跟随滑动效果的实现代码
2019/05/14 Javascript
vue+element项目中过滤输入框特殊字符小结
2019/08/07 Javascript
JavaScript RegExp 对象用法详解
2019/09/24 Javascript
vue配置多代理服务接口地址操作
2020/09/08 Javascript
使用node-media-server搭建一个简易的流媒体服务器
2021/01/20 Javascript
python实现socket客户端和服务端简单示例
2014/02/24 Python
python单线程实现多个定时器示例
2014/03/30 Python
简化Python的Django框架代码的一些示例
2015/04/20 Python
Python 网页解析HTMLParse的实例详解
2017/08/10 Python
Tensorflow tf.nn.depthwise_conv2d如何实现深度卷积的
2020/04/20 Python
关于Python3爬虫利器Appium的安装步骤
2020/07/29 Python
详解Pycharm与anaconda安装配置指南
2020/08/25 Python
ORACLE十问
2015/04/20 面试题
毕业生简单求职信
2013/11/19 职场文书
简历的自荐信
2013/12/19 职场文书
西式婚礼主持词
2014/03/13 职场文书
2014两会优秀的心得体会范文
2014/03/17 职场文书
《棉鞋里的阳光》教学反思
2016/02/20 职场文书
财产分割协议书
2016/03/22 职场文书
用几道面试题来看JavaScript执行机制
2021/04/30 Javascript
浅谈pytorch中stack和cat的及to_tensor的坑
2021/05/20 Python
SpringBoot整合RabbitMQ的5种模式实战
2021/08/02 Java/Android
“鬼灭之刃”热度不减,其成功背后的原因是什么?
2022/03/22 日漫