解决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 高效运行代码分析
Mar 18 Javascript
用Jquery重写windows.alert方法实现思路
Apr 03 Javascript
JavaScript实现GriwView单列全选(自写代码)
May 13 Javascript
原生javascript实现拖动元素示例代码
Sep 01 Javascript
jQuery中:visible选择器用法实例
Dec 30 Javascript
javascript实现判断鼠标的状态
Jul 10 Javascript
javascript基础练习之翻转字符串与回文
Feb 20 Javascript
jquery实现下拉框左右选择功能
Feb 21 Javascript
SpringBoot+Vue前后端分离,使用SpringSecurity完美处理权限问题的解决方法
Jan 09 Javascript
详解ES6 Symbol 的用途
Oct 14 Javascript
vue + typescript + 极验登录验证的实现方法
Jun 27 Javascript
layui lay-verify form表单自定义验证规则详解
Sep 18 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版)
2012/08/21 PHP
php数组去重的函数代码
2013/02/03 PHP
解析在zend Farmework下如何创立一个FORM表单
2013/06/28 PHP
Thinkphp单字母函数使用指南
2016/05/08 PHP
遍历指定目录,并存储目录内所有文件属性信息的php代码
2016/10/28 PHP
JavaScript 学习笔记一些小技巧
2010/03/28 Javascript
JavaScript ( (__ = !$ + $)[+$] + ({} + $)[_/_] +({} + $)[_/_] )
2011/02/25 Javascript
TextArea设置MaxLength属性最大输入值的js代码
2012/12/21 Javascript
jQuery中fadeIn、fadeOut、fadeTo的使用方法(图片显示与隐藏)
2013/05/08 Javascript
把字符串按照特定的字母顺序进行排序的js代码
2014/01/28 Javascript
jQuery中each()方法用法实例
2014/12/27 Javascript
JavaScript插件化开发教程(六)
2015/02/01 Javascript
jquery解析json格式数据的方法(对象、字符串)
2015/11/24 Javascript
JavaScript封装的常用工具类库bee.js用法详解【经典类库】
2018/09/03 Javascript
浅谈Express.js解析Post数据类型的正确姿势
2019/05/30 Javascript
JavaScript基础之this和箭头函数详析
2019/09/05 Javascript
vue路由守卫及路由守卫无限循环问题详析
2019/09/05 Javascript
利用Python绘制数据的瀑布图的教程
2015/04/07 Python
Python的collections模块中namedtuple结构使用示例
2016/07/07 Python
Django实现全文检索的方法(支持中文)
2018/05/14 Python
基于python神经卷积网络的人脸识别
2018/05/24 Python
Python queue队列原理与应用案例分析
2019/09/27 Python
python科学计算之narray对象用法
2019/11/25 Python
python数据类型强制转换实例详解
2020/06/22 Python
解决python3输入的坑——input()
2020/12/05 Python
Python经典五人分鱼实例讲解
2021/01/04 Python
HTML5的表单(绝对特别强大的功能)使用示例
2013/06/20 HTML / CSS
详解如何解决H5开发使用wx.hideMenuItems无效果不生效
2021/01/20 HTML / CSS
全球游戏Keys和卡片市场:GamesDeal
2018/03/28 全球购物
Dodax奥地利:音乐、电影、书籍、玩具、电子产品等
2019/08/31 全球购物
什么是三层交换,说说和路由的区别在那里
2014/09/01 面试题
英文版网络工程师求职信
2013/10/28 职场文书
网络维护管理员的自我评价分享
2013/11/11 职场文书
年度考核自我鉴定
2014/02/02 职场文书
酒店管理求职信范文
2014/04/06 职场文书
全民创业工作总结
2015/08/13 职场文书