Vue+axios封装请求实现前后端分离


Posted in Javascript onOctober 23, 2020

本文实例为大家分享了Vue+axios封装请求实现前后端分离的具体代码,供大家参考,具体内容如下

前言

我们需要进行前后端分离开发,那么前后端的跨域问题就是无可避免的问题,前后端的请求也是无可避免的,Vue之中有一个请求组件是axios,我们可以对axios进行封装作为我们请求的工具组件

# 一、封装axios
vue.config.js 配置文件

module.exports = {
 configureWebpack: {
 resolve: {
 alias: {
 api: '@/api',
 assets: '@/assets',
 components: '@/components',
 layouts: '@/layouts',
 router: '@/router',
 store: '@/store',
 utils: '@/utils',
 views: '@/views'
 }
 }
 },
 devServer: {
 //端口
 port: 8081,
 //后端接口
 proxy: {
 '/api': {
 target: 'http://localhost:8099', // 目标代理接口地址
 changeOrigin: true, // 开启代理,在本地创建一个虚拟服务端
 // ws: true, // 是否启用websockets
 pathRewrite: {
  '^/api': ''
 }
 }
 }
 }
}

request.js,封装组件

//配置axios
import axios from 'axios'

const instance = axios.create({
 baseURL: '/api',
 timeout: 6000
})


instance.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'
//请求拦截器
instance.interceptors.request.use(
 function(config) {
 return config
 },
 function(error) {
 //对请求错误做些什么
 return Promise.reject(error)
 }
)
//响应拦截器
instance.interceptors.response.use(
 function(response) {
 return response.data
 },
 function(error) {
 //对响应错误做点什么
 return Promise.reject(error)
 }
)

export default function(method, url, data = '', config = '') {
 method = method.toLowerCase()
 if (method === 'post') {
 if (config !== '') {
 return instance.post(url, data, config)
 } else {
 return instance.post(url, data)
 }
 } else if (method === 'get') {
 return instance.get(url, {params: data})
 } else if (method === 'delete') {
 return instance.delete(url, {params: data})
 } else if (method === 'put') {
 return instance.put(url, data)
 } else {
 console.error('未知的method' + method)
 return false
 }
}

api.js,接口文件

import req from '@/utils/request'

/**
 * 批量查询
 * @param params
 */
export const list = params => req("get", "/resource/list", params);

具体的页面之中进行导入使用即可

总结

这就是vue中对于axios的初步封装使用,后续会持续更新

关于vue.js组件的教程,请大家点击专题vue.js组件学习教程进行学习。

更多vue学习教程请阅读专题《vue实战教程》

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
基于JQuery的Select选择框的华丽变身
Aug 23 Javascript
node.js中的fs.readFile方法使用说明
Dec 15 Javascript
javascript实现无限级select联动菜单
Jan 02 Javascript
详谈javascript中DOM的基本属性
Feb 26 Javascript
JS获取iframe中longdesc属性的方法
Apr 01 Javascript
jQuery制作效果超棒的手风琴折叠菜单
Apr 03 Javascript
javascript数组随机排序实例分析
Jul 22 Javascript
JavaScript获取客户端IP的方法(新方法)
Mar 11 Javascript
利用jquery正则表达式在页面验证url网址输入是否正确
Apr 04 jQuery
XMLHttpRequest对象_Ajax异步请求重点(推荐)
Sep 28 Javascript
vue实现前进刷新后退不刷新效果
Jan 26 Javascript
24行JavaScript代码实现Redux的方法实例
Nov 17 Javascript
构建一个JavaScript插件系统
Oct 20 #Javascript
vue中解决微信html5原生ios虚拟键返回不刷新问题
Oct 20 #Javascript
原生js实现俄罗斯方块
Oct 20 #Javascript
React实现评论的添加和删除
Oct 20 #Javascript
基于JavaScript实现简单抽奖功能代码实例
Oct 20 #Javascript
微信小程序使用前置摄像头拍照
Oct 22 #Javascript
jQuery实现可以计算进制转换的计算器
Oct 19 #jQuery
You might like
解析isset与is_null的区别
2013/08/09 PHP
php发送get、post请求的6种方法简明总结
2014/07/08 PHP
Linux安装配置php环境的方法
2016/01/14 PHP
PHP正则之正向预查与反向预查讲解与实例
2020/04/06 PHP
IE8对JS通过属性和数组遍历解析不一样的地方探讨
2013/05/06 Javascript
jquery仿搜索自动联想功能代码
2014/05/23 Javascript
javascript实时显示北京时间的方法
2015/03/12 Javascript
jQuery模拟黑客帝国矩阵效果实例
2015/06/28 Javascript
js中跨域方法原理详解
2015/07/19 Javascript
Bootstrap表单布局样式代码
2016/05/31 Javascript
javascript和jQuery实现网页实时聊天的ajax长轮询
2016/07/20 Javascript
js 转json格式的字符串为对象或数组(前后台)的方法
2016/11/02 Javascript
详解AngularJS通过ocLazyLoad实现动态(懒)加载模块和依赖
2017/03/01 Javascript
angular十大常见问题
2017/03/07 Javascript
关于在vue-cli中使用微信自动登录和分享的实例
2017/06/22 Javascript
create-react-app构建项目慢的解决方法
2018/03/14 Javascript
vuex state及mapState的基础用法详解
2018/04/19 Javascript
在Mac下彻底卸载node和npm的方法
2018/05/16 Javascript
Jquery属性的获取/设置及样式添加/删除操作技巧分析
2019/12/23 jQuery
浅析Git版本控制器使用
2017/12/10 Python
Python使用OpenCV进行标定
2018/05/08 Python
tensorflow如何批量读取图片
2019/08/29 Python
python 利用pywifi模块实现连接网络破解wifi密码实时监控网络
2019/09/16 Python
python实现斗地主分牌洗牌
2020/06/22 Python
Python 字典一个键对应多个值的方法
2020/09/29 Python
基于Django集成CAS实现流程详解
2020/11/28 Python
The Kooples美国官方网站:为情侣提供的法国当代时尚品牌
2019/01/03 全球购物
加拿大专业美发产品购物网站:Chatters
2021/02/28 全球购物
医学专业大学生求职的自我评价
2013/11/27 职场文书
五十岁生日宴会答谢词
2014/01/15 职场文书
《鞋匠的儿子》教学反思
2014/03/02 职场文书
党员教师一句话承诺
2014/05/30 职场文书
2015年工程师工作总结
2015/04/30 职场文书
社会主义核心价值观主题教育活动总结
2015/05/07 职场文书
预防职务犯罪警示教育心得体会
2016/01/15 职场文书
python垃圾回收机制原理分析
2022/04/13 Python