解决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 相关文章推荐
js 与或运算符 || && 妙用
Dec 09 Javascript
$.each遍历对象、数组的属性值并进行处理
Jul 18 Javascript
一个支付页面DEMO附截图
Jul 22 Javascript
jquery实现叠层3D文字特效代码分享
Aug 21 Javascript
JS前向后瞻正则表达式定义与用法示例
Dec 27 Javascript
Vue.js开发环境快速搭建教程
Mar 17 Javascript
JS实现的简单标签点击切换功能示例
Sep 21 Javascript
解决使用bootstrap的dropdown部件时报错:error:Bootstrap dropdown require Popper.js问题
Aug 30 Javascript
详解解决小程序中webview页面多层history返回问题
Aug 20 Javascript
layui复选框的全选与取消实现方法
Sep 02 Javascript
JS运算符简单用法示例
Jan 19 Javascript
基于Vue.js+Nuxt开发自定义弹出层组件
Oct 09 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
第二节--PHP5 的对象模型
2006/11/16 PHP
php中explode函数用法分析
2014/11/15 PHP
PHP读取CSV大文件导入数据库的实例
2017/07/24 PHP
php实现单笔转账到支付宝功能
2018/10/09 PHP
jquery tablesorter.js 支持中文表格排序改进
2009/12/09 Javascript
浅谈重写window对象的方法
2014/12/29 Javascript
JavaScript中property和attribute的区别详细介绍
2015/03/03 Javascript
【经典源码收藏】jQuery实用代码片段(筛选,搜索,样式,清除默认值,多选等)
2016/06/07 Javascript
js前端实现多图图片上传预览的两个方法(推荐)
2016/11/18 Javascript
基于JS对象创建常用方式及原理分析
2017/06/28 Javascript
jQuery实现动态控制页面元素的方法分析
2017/12/20 jQuery
Express进阶之log4js实用入门指南
2018/02/10 Javascript
Nodejs实现多文件夹文件同步
2018/10/17 NodeJs
Vue安装浏览器开发工具的步骤详解
2019/05/12 Javascript
javascript实现简易数码时钟
2020/03/30 Javascript
python实现模拟按键,自动翻页看u17漫画
2015/03/17 Python
使用Python导出Excel图表以及导出为图片的方法
2015/11/07 Python
Python基于二分查找实现求整数平方根的方法
2016/05/12 Python
Python实现基于多线程、多用户的FTP服务器与客户端功能完整实例
2017/08/18 Python
利用python将pdf输出为txt的实例讲解
2018/04/23 Python
Pandas之ReIndex重新索引的实现
2019/06/25 Python
Django 创建/删除用户的示例代码
2019/07/24 Python
PyQt+socket实现远程操作服务器的方法示例
2019/08/22 Python
在Python中使用MySQL--PyMySQL的基本使用方法
2019/11/19 Python
Python TCP通信客户端服务端代码实例
2019/11/21 Python
pyinstaller还原python代码过程图解
2020/01/08 Python
python 安装库几种方法之cmd,anaconda,pycharm详解
2020/04/08 Python
经贸日语毕业生自荐信
2013/11/03 职场文书
实用求职信范文分享
2013/12/25 职场文书
中专毕业生个人职业生涯规划
2014/02/19 职场文书
推荐信格式范文
2014/05/09 职场文书
经营管理策划方案
2014/05/22 职场文书
2014年个人委托书范本
2014/10/13 职场文书
2014年班组长工作总结
2014/11/20 职场文书
2014年校长工作总结
2014/12/11 职场文书
安全生产先进个人总结
2015/02/15 职场文书