解决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实现画不相交的圆
Apr 07 Javascript
js实现鼠标划过给div加透明度的方法
May 25 Javascript
JavaScript中的lastIndexOf()方法使用详解
Jun 06 Javascript
JQuery操作textarea,input,select,checkbox方法
Sep 02 Javascript
JS获取文件大小方法小结
Dec 08 Javascript
jQuery实现鼠标选文字发新浪微博的方法
Apr 02 Javascript
javascript简单判断输入内容是否合法的方法
May 11 Javascript
thinkphp标签实现bootsrtap轮播carousel实例代码
Feb 19 Javascript
HTML5实现微信拍摄上传照片功能
Apr 21 Javascript
深入剖析Express cookie-parser中间件实现示例
Feb 01 Javascript
angular使用md5,CryptoJS des加密的方法
Jun 03 Javascript
vue实现广告栏上下滚动效果
Nov 26 Vue.js
自定义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版(5)
2006/10/09 PHP
详解PHP内置访问资源的超时时间 time_out file_get_contents read_file
2013/06/03 PHP
js限制checkbox勾选的个数以及php获取多个checkbbox的方法深入解析
2013/07/18 PHP
PHP中使用Session配合Javascript实现文件上传进度条功能
2014/10/15 PHP
php二维码生成
2015/10/19 PHP
PHP实现发送邮件的方法(基于简单邮件发送类)
2015/12/17 PHP
PHP中抽象类和抽象方法概念与用法分析
2016/05/24 PHP
PHP开发之用微信远程遥控服务器
2018/01/25 PHP
Avengerls vs KG BO3 第三场2.18
2021/03/10 DOTA
XML+XSL 与 HTML 两种方案的结合
2007/04/22 Javascript
在JavaScript中,为什么要尽可能使用局部变量?
2009/04/06 Javascript
基于jquery的手风琴图片展示效果实现方法
2014/12/16 Javascript
jquery radio的取值_radio的选中_radio的重置方法
2016/09/20 Javascript
jQuery动态生成表格及右键菜单功能示例
2017/01/13 Javascript
jQuery 实现倒计时天,时,分,秒功能
2018/07/31 jQuery
jQuery实现获取及设置CSS样式操作详解
2018/09/05 jQuery
微信小程序间使用navigator跳转传值问题实例分析
2020/03/27 Javascript
Element Steps步骤条的使用方法
2020/07/26 Javascript
javascript中正则表达式语法详解
2020/08/07 Javascript
Python爬虫实现百度图片自动下载
2018/02/04 Python
解决Pandas to_json()中文乱码,转化为json数组的问题
2018/05/10 Python
Python工厂函数用法实例分析
2018/05/14 Python
pycharm使用matplotlib.pyplot不显示图形的解决方法
2018/10/28 Python
Python中asyncio模块的深入讲解
2019/06/10 Python
分享一枚pycharm激活码适用所有pycharm版本我的pycharm2020.2.3激活成功
2020/11/20 Python
纯CSS3实现Material Design效果
2017/03/09 HTML / CSS
css3 transform导致子元素固定定位变成绝对定位的方法
2020/03/06 HTML / CSS
html5配合css3实现带提示文字的输入框(摆脱js)
2013/03/08 HTML / CSS
英国卫浴商店:Ergonomic Design
2019/09/22 全球购物
培训主管岗位职责
2014/02/01 职场文书
信息专业学生学习的自我评价
2014/02/17 职场文书
应届毕业生自荐信例文
2014/02/26 职场文书
大学生优秀班干部事迹材料
2014/05/26 职场文书
学习党的群众路线实践活动思想汇报
2014/09/12 职场文书
工伤私了协议书范本
2014/11/24 职场文书
nginx实现动静分离的方法示例
2021/11/07 Servers