解决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 eval函数深入认识
Feb 21 Javascript
IE8 chrome中table隔行换色解决办法
Jul 09 Javascript
IE之动态添加DOM节点触发window.resize事件
Jul 27 Javascript
javascript实现tabs选项卡切换效果(扩展版)
Mar 19 Javascript
js 页面元素的几个用法总结
Nov 18 Javascript
JS组件Bootstrap dropdown组件扩展hover事件
Apr 17 Javascript
Bootstrap Table从服务器加载数据进行显示的实现方法
Sep 29 Javascript
javascript中this关键字详解
Dec 12 Javascript
JavaScript冒泡算法原理与实现方法深入理解
Jun 04 Javascript
详解Webpack4多页应用打包方案
Jul 16 Javascript
Vue组件通信$attrs、$listeners实现原理解析
Sep 03 Javascript
微信小程序实现购物车功能
Nov 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
《猛禽小队》:DC宇宙的又一超级大烂片
2020/04/09 欧美动漫
PHP迅雷、快车、旋风下载专用链转换代码
2010/06/15 PHP
php修改时间格式的代码
2011/05/29 PHP
Zend Framework入门教程之Zend_Session会话操作详解
2016/12/08 PHP
php正则提取html图片(img)src地址与任意属性的方法
2017/02/08 PHP
PHP 无限级分类
2017/05/04 PHP
文字幻灯片
2006/06/26 Javascript
IE8 下的Js错误HTML Parsing Error...
2009/08/14 Javascript
20款超赞的jQuery插件 Web开发人员必备
2011/02/26 Javascript
js菜单点击显示或隐藏效果的简单实例
2014/01/13 Javascript
js中opener与parent的区别详细解析
2014/01/14 Javascript
javascript实现十六进制颜色值(HEX)和RGB格式相互转换
2014/06/20 Javascript
JavaScript判断用户名和密码不能为空的实现代码
2016/05/16 Javascript
jQuery实现的无缝广告图片左右滚动功能详解
2016/12/24 Javascript
Bootstrap标签页(Tab)插件使用方法
2017/03/21 Javascript
学习JS中的DOM节点以及操作
2018/04/30 Javascript
Javascript作用域和作用域链原理解析
2020/03/03 Javascript
python实现k均值算法示例(k均值聚类算法)
2014/03/16 Python
关于python写入文件自动换行的问题
2018/06/23 Python
Python实现八皇后问题示例代码
2018/12/09 Python
python集合是否可变总结
2019/06/20 Python
Django 反向生成url实例详解
2019/07/30 Python
Python中函数的返回值示例浅析
2019/08/28 Python
Python实现字符串中某个字母的替代功能
2019/10/21 Python
python如何实现不用装饰器实现登陆器小程序
2019/12/14 Python
Python实现寻找回文数字过程解析
2020/06/09 Python
详解matplotlib中pyplot和面向对象两种绘图模式之间的关系
2021/01/22 Python
CSS3制作圆角图片和椭圆形图片
2016/07/08 HTML / CSS
生物有机护肤品:Aurelia Probiotic Skincare
2018/01/31 全球购物
No7 Beauty美国官网:英国国民护肤品牌
2019/10/31 全球购物
优秀共产党员先进事迹
2014/01/27 职场文书
党员检讨书范文
2014/12/27 职场文书
保送生自荐信
2015/03/06 职场文书
2015入党个人自传范文
2015/06/26 职场文书
七一晚会主持词
2015/06/29 职场文书
2020优秀员工演讲稿(三篇)
2019/10/17 职场文书