vue3 axios 怎么封装api(vue中如何简单封装axios浅析)
类别:编程学习 浏览量:2460
时间:2021-11-08 16:16:23 vue3 axios 怎么封装api
vue中如何简单封装axios浅析把axios注入到Vue中
import axios from 'axios'; Vue.prototype.$axios = axios;
import axios from 'axios' axios.defaults.timeout = 5000; //响应时间 axios.defaults.headers.post['Content-Type'] = 'application/json;charset=UTF-8'; //配置请求头 axios.defaults.withCredentials= true; //带cookie axios.defaults.baseURL = 'http://localhost:8080/'; //配置接口地址 //POST传参序列化(添加请求拦截器) axios.interceptors.request.use((config) => { //在这里可以添加序列化代码,根据后端而定,我用的SSM后端接受Json对象,假如需要序列化可以用qs组件 return config; },(error) =>{ console.log('错误的传参') return Promise.reject(error); }); //返回状态判断(添加响应拦截器) axios.interceptors.response.use((res) =>{ //对响应数据做些事 if(!res.data.success){ return Promise.resolve(res); } return res; }, (error) => { console.log('网络异常') return Promise.reject(error); }); //返回一个Promise(发送post请求) export function fetchPost(url, params) { return new Promise((resolve, reject) => { axios.post(url, params) .then(response => { resolve(response); }, err => { reject(err); }) .catch((error) => { reject(error) }) }) } 返回一个Promise(发送get请求) export function fetchGet(url, param) { return new Promise((resolve, reject) => { axios.get(url, {params: param}) .then(response => { resolve(response) }, err => { reject(err) }) .catch((error) => { reject(error) }) }) } export default { fetchPost, fetchGet, }
简单测试:
loginPost: function() { let params = { 'password': '123', 'username': 'admin' } http.fetchPost('/login', params).then((data) => { console.log(data) }).catch(err => { console.log(err) }) }, hello: function() { http.fetchGet('/hello', "").then((data) => { console.log(data) }).catch(err => { console.log(err) }) },
post请求:
get请求:
跨域问题,这里是在后端配置的:
在SpringMVC.xml中配置跨域:
<!-- 接口跨域配置 --> <mvc:cors> <!-- allowed-methods="*" --> <!-- 表示所有请求都有效 --> <mvc:mapping path="/**" allowed-origins="*" allowed-methods="POST, GET, OPTIONS, DELETE, PUT" allowed-headers="Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With" allow-credentials="true"/> </mvc:cors><!-- 接口跨域配置 -->
接口配置:
在Vue中配置 创建一个vue.config.js:
module.exports = { devServer: { proxy: { '/api': { target: 'http://127.0.0.1:8080', // 在本地会创建一个虚拟服务端,然后发送请求的数据,并同时接收请求的数据,这样服务端和服务端进行数据的交互就不会有跨域问题 changeOrigin: true, ws: true, pathRewrite: { '^/api': '' // 替换target中的请求地址,也就是说以后你在请求http://api.jisuapi.com/XXXXX这个地址的时候直接写成/api即可 } } } } }
后端也能正常获取cookie。
当然要注意下面这个配置,这个是带cookie的原因
axios.defaults.withCredentials= true;
总结
到此这篇关于vue中如何简单封装axios的文章就介绍到这了,更多相关vue封装axios内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
您可能感兴趣
- vue过滤器filters怎么用(如何使用vue过滤器filter)
- vue websocket实时刷新数据(Vue+WebSocket页面实时刷新长连接的实现)
- vue3.0零基础入门(快速掌握Vue3.0中如何上手Vuex状态管理)
- vue 计算一段时间的月份和天数(vue实现指定日期之间的倒计时)
- vue3函数详解(手把手教你用vue3开发一个打砖块小游戏)
- vuex-table行列转换效果(vue3+el-table实现行列转换)
- vue项目部署到服务器的nginx(Nginx部署vue项目和配置代理的问题解析)
- vue项目上线教程(vue项目中使用骨架屏的方法)
- vue如何导入excel(Vue实现导入Excel功能步骤详解)
- vuecli配置环境变量(Vue CLI中模式与环境变量的深入详解)
- vue中的mapgetter优势(vuex 中辅助函数mapGetters的基本用法详解)
- vue过滤器使用思路(vue 过滤器和自定义指令的使用)
- vuecli打包项目(使用vue-cli创建项目并webpack打包的操作方法)
- vue浏览pdf文件(如何在vue中使用pdfjs预览pdf文件)
- vue的修饰符都有哪些(详解Vue的sync修饰符)
- vue实现列表向上滚动更新(vue实现列表无缝滚动)
- 熊猫中国国宝(熊猫国宝酒53酱香)
- 春节会放假几天(春节会放假吗)
- 小浴室,大民生 缙云3200多户困难群众洗上免费热水澡(小浴室大民生缙云3200多户困难群众洗上免费热水澡)
- 元旦闲谭(元旦闲谭)
- 息烽 这个村 治垃圾 有招 人人争当卫生模范(息烽这个村治垃圾)
- 今天要吃什么(今天要吃什么菜)
热门推荐
- python函数使用方法高级用法(Python函数的参数常见分类与用法实例详解)
- wamp系统设置教程(浅谈本地WAMP环境的搭建)
- 9小时搞定微信小程序开发(关于加快微信小程序开发的一些小建议)
- php中钩子的理解与实例教程(php中钩子hook的原理与简单应用demo示例)
- oracle和mysql查询所有表(Oracle、MySQL和SqlServe三种数据库分页查询语句的区别介绍)
- MySQL配置文件my.cnf的介绍
- sqlcount优化(SQL优化教程之in与range查询)
- css垂直居中图解(全面总结使用CSS实现水平垂直居中效果的方法)
- 租用服务器收费标准(网站服务器租用多少钱?)
- dedecms新字段(DEDECMSv5.6 tags.php标签不能按照时间排序的问题)