解决vue跨域axios异步通信问题


Posted in Javascript onApril 17, 2019

在项目中,常常需要从后端获取数据内容。特别是在前后端分离的时候,前端进行了工程化部署,跨域请求成了一个前端必备的技能点。好在解决方案很多。

 在vue中,在开发中,当前使用较多的是axios进行跨域请求数据,但不少人遇到如下问题:

•异步通信,无法同步执行
•无法集中管理
•不便阅读
•还未请求成功就调转了
•then里面的逻辑越来越繁杂

以往的网络请求的写法如下:

// main.js
// 引入axios
import axios from 'axios'
Vue.prototype.$axios = axios;
// vue页面中的使用
// get
let url = '地址'
this.$axios.get(url,{
 params:{} // 参数信息
})
 .then((res) => {
  // 成功后执行语句
 })
 .catch((err) =>{
  // 网络中断或失败执行语句
 })
// post
let url = '地址'
this.$axios.post(url,{
 // 参数信息
})
 .then((res) => {
  // 成功后执行语句
 })
 .catch((err) =>{
  // 网络中断或失败执行语句
 })

或许在目前的过程中异步能够更好的解决用户体验感,先加载后弹出。但总有那么一个场景我们需要大量的内容进行处理,而且前后有明显的顺序执行的关系,那么异步通信可能会对你造成不必要的问题。所以,解决运用async/await解决异步通信问题

在main.js旁边新建http.js文件

// http.js

引入axios

import axios from 'axios'

var http = {
 // get 请求
 get: function(url,params){
  return new Promise((resolve,reject) => {
   axios.get(url,{
    params:params
   })
    .then((response) =>{
     resolve(response.data)
    })
    .catch((error) => {
     reject( error )
    })
  })
 }
 // post 请求
 post: function(url,params){
  return new Promise((resolve,reject) => {
   axios.post(url,params)
   .then((response) => {
    resolve( response.data )
   })
   .catch((error) => {
    reject( error )
   })
  })
 }
}

export default http

并在main.js入口引入

// 引入http请求
import http from './http.js'
Vue.prototype.$http = http

现在就可以在页面中使用了

// 在vue中使用
// get
async login () {
 let url = '地址'
 let params = {} // 参数
 let res = await this.$http.get(url,params)
}
// post
async login () {
 let url = '地址'
 let params = {} // 参数
 let res = await this.$http.post(url,params)
}

async 放在方法前面

await 放在$http前面就OK了

单词示意:

async:异步。
await:等待。

总结

以上所述是小编给大家介绍的解决vue跨域axios异步通信问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
基于Jquery的表格隔行换色,移动换色,点击换色插件
Dec 22 Javascript
在javascript中执行任意html代码的方法示例解读
Dec 25 Javascript
js如何实现点击标签文字,文字在文本框出现
Aug 05 Javascript
Bootstrap表单组件教程详解
Apr 26 Javascript
jQuery实现导航回弹效果
Feb 27 Javascript
使用BootStrap实现标签切换原理解析
Mar 14 Javascript
jQuery实现form表单序列化转换为json对象功能示例
May 23 jQuery
JavaScript高阶教程之“==”隐藏下的类型转换
Apr 11 Javascript
详解vue-cli+element-ui树形表格(多级表格折腾小计)
Apr 17 Javascript
vue 取出v-for循环中的index值实例
Nov 09 Javascript
通过javascript实现扫雷游戏代码实例
Feb 09 Javascript
js找出5个数中最大的一个数和倒数第二大的数实现方法示例小结
Mar 04 Javascript
自定义Vue中的v-module双向绑定的实现
Apr 17 #Javascript
微信公众平台 发送模板消息(Java接口开发)
Apr 17 #Javascript
微信公众平台 客服接口发消息的实现代码(Java接口开发)
Apr 17 #Javascript
vue获取时间戳转换为日期格式代码实例
Apr 17 #Javascript
微信小程序bindinput与bindsubmit的区别实例分析
Apr 17 #Javascript
vue 项目 iOS WKWebView 加载
Apr 17 #Javascript
Vue组件间通信方法总结(父子组件、兄弟组件及祖先后代组件间)
Apr 17 #Javascript
You might like
PHP正则匹配日期和时间(时间戳转换)的实例代码
2016/12/14 PHP
PHP基于socket实现客户端和服务端通讯功能
2017/07/13 PHP
php实现数字补零的方法总结
2018/09/12 PHP
在jQuery ajax中按钮button和submit的区别分析
2012/10/07 Javascript
Javascript中引用示例介绍
2014/02/21 Javascript
兼容主流浏览器的jQuery+CSS 实现遮罩层的简单代码
2014/10/14 Javascript
node.js开发中使用Node Supervisor实现监测文件修改并自动重启应用
2014/11/04 Javascript
JavaScript实现的简单幂函数实例
2015/04/17 Javascript
《JavaScript高级编程》学习笔记之object和array引用类型
2015/11/01 Javascript
Vue.js学习笔记之 helloworld
2016/08/14 Javascript
基于Vue过渡状态实例讲解
2017/09/14 Javascript
JS实现前端页面的搜索功能
2018/06/12 Javascript
在vue中使用SockJS实现webSocket通信的过程
2018/08/29 Javascript
vue-cli安装使用流程步骤详解
2018/11/08 Javascript
javascript的this关键字详解
2019/05/20 Javascript
使用axios请求时,发送formData请求的示例
2019/10/29 Javascript
解决vue elementUI中table里数字、字母、中文混合排序问题
2020/01/07 Javascript
[06:42]DOTA2每周TOP10 精彩击杀集锦vol.1
2014/06/25 DOTA
[36:33]完美世界DOTA2联赛循环赛 Matador vs Forest 第一场 11.06
2020/11/06 DOTA
python连接mysql数据库示例(做增删改操作)
2013/12/31 Python
在Python的web框架中编写创建日志的程序的教程
2015/04/30 Python
Django中对通过测试的用户进行限制访问的方法
2015/07/23 Python
Python的“二维”字典 (two-dimension dictionary)定义与实现方法
2016/04/27 Python
利用python批量给云主机配置安全组的方法教程
2017/06/21 Python
捷克移动配件网上商店:ProMobily.cz
2019/03/15 全球购物
卡拉威高尔夫官方网站:Callaway Golf
2020/09/16 全球购物
TCP/IP模型的分界线
2012/12/01 面试题
成品仓管员岗位职责
2013/12/11 职场文书
英语专业学生的自我评价
2013/12/30 职场文书
工厂会计员职责
2014/02/06 职场文书
节约用电标语
2014/06/17 职场文书
家长通知书家长意见
2014/12/30 职场文书
2015年营销工作总结范文
2015/04/23 职场文书
审查起诉阶段律师意见书
2015/05/19 职场文书
2016年世界艾滋病日宣传活动总结
2016/04/01 职场文书
XX部保密工作制度范本
2019/08/27 职场文书