解决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 相关文章推荐
javascript第一课
Feb 27 Javascript
用JS将搜索的关键字高亮显示实现代码
Nov 08 Javascript
js中回调函数的学习笔记
Jul 31 Javascript
javascript简单实现图片预加载
Dec 03 Javascript
jQuery.position()方法获取不到值的安全替换方法
Mar 13 Javascript
jQuery轮播图效果精简版完整示例
Sep 04 Javascript
微信小程序 删除项目工程实现步骤
Nov 10 Javascript
Extjs表单输入框异步校验的插件实现方法
Mar 20 Javascript
ES6正则表达式的一些新功能总结
May 09 Javascript
vue项目实战总结篇
Feb 11 Javascript
深入浅析Vue.js中 computed和methods不同机制
Mar 22 Javascript
Element 默认勾选表格 toggleRowSelection的实现
Sep 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实现图片转换成ASCII码的方法
2015/04/03 PHP
PHP常见字符串处理函数用法示例【转换,转义,截取,比较,查找,反转,切割】
2016/12/24 PHP
PHP使用phpunit进行单元测试示例
2019/09/23 PHP
css动画效果之animation的常用样式
2021/03/09 HTML / CSS
jQuery 中关于CSS操作部分使用说明
2007/06/10 Javascript
Jquery 插件学习实例1 插件制作说明与tableUI优化
2010/04/02 Javascript
JavaScript也谈内存优化
2014/06/06 Javascript
node.js中的fs.createWriteStream方法使用说明
2014/12/17 Javascript
JS实现带有抽屉效果的产品类网站多级导航菜单代码
2015/09/15 Javascript
JavaScript调用传递变量参数的相关问题及解决办法
2015/11/01 Javascript
如何解决IONIC页面底部被遮住无法向上滚动问题
2016/09/06 Javascript
jQuery基于排序功能实现上移、下移的方法
2016/11/26 Javascript
Bootstrap Modal对话框如何在关闭时触发事件
2016/12/02 Javascript
微信页面倒计时代码(解决safari不兼容date的问题)
2016/12/13 Javascript
详解angularjs中如何实现控制器和指令之间交互
2017/05/31 Javascript
NodeJS设计模式总结【单例模式,适配器模式,装饰模式,观察者模式】
2017/09/06 NodeJs
Vue管理系统前端之组件拆分封装详解
2020/08/23 Javascript
[04:15]DOTA2-DPC中国联赛1月19日Recap集锦
2021/03/11 DOTA
linux系统使用python监测系统负载脚本分享
2014/01/15 Python
itchat和matplotlib的结合使用爬取微信信息的实例
2017/08/25 Python
tensorflow创建变量以及根据名称查找变量
2018/03/10 Python
Window环境下Scrapy开发环境搭建
2018/11/18 Python
python实现简易动态时钟
2018/11/19 Python
Python3 利用face_recognition实现人脸识别的方法
2020/03/13 Python
Python基于staticmethod装饰器标示静态方法
2020/10/17 Python
matplotlib 使用 plt.savefig() 输出图片去除旁边的空白区域
2021/01/05 Python
CSS3的Border-radius轻松制作圆角
2012/12/24 HTML / CSS
IE支持HTML5的解决方法
2009/10/20 HTML / CSS
使用HTML5做的导航条详细步骤
2020/10/19 HTML / CSS
香港迪士尼乐园酒店预订:Hong Kong Disneyland Hotels
2017/05/02 全球购物
计算机应用与科学个人的自我评价
2013/11/15 职场文书
初婚初育证明
2014/01/14 职场文书
计算机个人求职信范例
2014/01/24 职场文书
培训主管的职业生涯规划
2014/03/06 职场文书
悬崖上的金鱼姬观后感
2015/06/15 职场文书
标枪加油稿
2015/07/22 职场文书