react axios封装
axios的简单封装
其实经常在做前后端分离的小伙伴经常遇到前后端交互时,经常会使用axios或者fetch与后端进行交互,常说适合自己的就是最好的,许多人已经有自己常用的一套写法,我现在把我的写法推荐给大家。
import axios from 'axios';
import Qs from 'qs';
import regeneratorRuntime from "regenerator-runtime";
import _ from 'lodash/assignIn';
const baseUrl = process.env.NODE_ENV == 'production' ? 'https:/xxxx' : 'http://xxxxx';const Service = async (context) => {const {url, ...data} = context;const token = window.localStorage.getItem('AUTHORIZATION');const username = window.localStorage.getItem('USERNAME');const instance = axios.create({baseURL: baseUrl,timeout: 100000,credentials: 'include',mode: 'cors', });const header = data.headers ? data.headers['Content-Type'] : 'application/x-www-form-urlencoded; charset=utf-8';//创建请求拦截器instance.interceptors.request.use(config => {config.params = Qs.stringify(config.params);config.headers = {'Content-Type': header,'Authorization': token,'USERNAME': username}; return config; }, error => {return Promise.reject(error);});//创建响应拦截器instance.interceptors.response.use(response => { return response; }, error => {console.log("error:", error);switch (error.response.status) {case 400:return Promise.reject(error.response.data);case 401:window.location.href = '/#/login';return Promise.reject({'errorMessage': '会话已过期,已跳转登录页面'}); case 404:return Promise.reject({'errorMessage': "暂时无法处理该请求,该问题已发送给管理员"});case 500:return Promise.reject({"errorMessage": '服务器请求失败,该问题已发送给管理员'})default:return Promise.reject(error); }; });const response = await new Promise((resolve, reject)=> {instance({url: baseUrl + url,...data}).then((response) => {resolve(response.data);}).catch (error => reject(error));})return response;};
export {Service, baseUrl};
发送端
let context = {'url': '/setinfo/','method': 'put','data': {last_name:username,sex,canremix:remix},'headers': {'Content-Type': 'application/json; charset=UTF-8'},};Service(context).then((response)=>{if(response.status === 'success'){alert.success("用户信息保存成功");props.onUpdateUserMessage(response.data);props.onUpdateUserCanremix(response.data);};}).catch((error) => {alert.error(error.errorMessage);})
react axios封装相关推荐
- axios post body参数_Vue开发中的一些问题(axios封装)
关于Vue开发的问题(axios封装) 在博客中查找vue的axios封装,发现其中案例还是很多的,自己项目中有些需求不够. 比如 1.Content-Type 请求头 application/x-w ...
- axios设置text html,axios封装动态设置Content-Type
问题如下: 有个问题 是这样的 后台给的API接口 请求类型有两种 'Content-Type': 'application/json' 'Content-Type': 'application/x- ...
- vue中将axios封装
在平时写项目中,经常会遇到组件调用同一个接口或者不同接口 import axios from "axios"axios({url: "https://autumnfish ...
- vue axios封装 获取微信公众号用户的openid
目录 axios封装 openid vue vue+ts axios封装 一般会在项目的src目录中,新建一个文件夹,作为网络请求模块,用来封装axios, 创建axios实例: axios.crea ...
- React 组件封装之 Tree 树形控件
React 组件封装之 Tree 树形控件 一.Tree 树形结构 二.使用案例 三.API 使用指南 四.源代码 五.总结 一.Tree 树形结构 组件说明: 实现树形控件,适用于组织架构.文章列表 ...
- React 组件封装之 Card 卡片
React 组件封装之 Card 一.Card 卡片 二.使用案例 三.API 使用指南 四.源代码 一.Card 卡片 组件说明: 使列表成为卡片形式的布局. 效果展示: 二.使用案例 import ...
- ajax和axios封装
Ajax 1.ajax理解 ajax是async JavaScript and xml /异步的js和xml 主要用来实现页面的局部刷新 在浏览器里内置了ajxa的核心对象的:XMLHttpRequ ...
- vue中axios封装请求
执行 GET 请求 // 向具有指定ID的用户发出请求 axios.get('/user?ID=12345') .then(function (res) {console.log(res); }) . ...
- 前端学习笔记(16)-Axios封装
1.Axios介绍 1.1 概述 Vue前端开发少不了向服务器请求数据,我们选择axios插件,他是一款功能强大,且易用的网络请求工具. 1.2 全称 ajax i/o system 1.3 功能介绍 ...
- axios封装(通用)
axios封装 封装目的: 避免重复设置超时时间,请求头,错误处理:提高代码质量 主要文件目录: post/index.js /** @Descripttion: axios 封装* @version ...
最新文章
- 【体验】感谢朋友雪中送炭寄来的便携示波器,便携示波器开箱体验
- java排序算法代码_Java实现八种排序算法(代码详细解释)
- JAVA蘑菇西餐,蘑菇的22种西餐做法,简单易上手,让你品尝不一样的风味
- PADS Layout的一个鼠标小技巧
- 订阅号 图文回复php,微信开发(PHP实现订阅号的公众号配置和自动回复)
- linux C/C++开发环境搭建指南
- 计算机网络中tdm是什么,计算机网络-复习题(1)
- 复选框(checkbox)、单选框(radiobox)的使用
- 考研英语真题笔记 2020
- appuim+python自动化测试计算器实例
- 《STM32从零开始学习历程》——SPI读取FLASH ID
- Hash冲突解决方法
- Java实现进制转换方法汇总
- Flips测试类(page43)
- 电脑出现问题。你的PIN不可用,请单击以重置——解决方案总结
- 科学划定“三区三线” 严格保护与合理利用自然资源
- 【项目管理软件盛宴】谁才是人气王?
- Rest_Assured接口测试学习汇总
- 程序员面试常见问题有哪些?如何回答才能拿到offer?
- Chips-2.0(一) 安装
热门文章
- pwrkey直接接地 sim7020_有方模块常见问题解答
- 系统集成项目管理工程师有什么用,你真的了解吗?
- 基于cat12和SPM12进行大脑VBM数据分析笔记2——统计分析
- 3dmax全局材质灯光细分插件_【3D脚本插件】如何利用插件快速修改全局灯光材质细分...
- 深度学习与计算机视觉教程(6) | 神经网络训练技巧 (上)(CV通关指南·完结)
- visio一分二的箭头_Visio如何画各种线条与箭头?
- POI合并单元格后边框显示问题
- 黑马JAVA P108 语法知识:枚举、枚举作用
- CleanMyPC比360管家好用N倍的电脑清理软件
- air724UG + Luat玩转物联网(一) 环境搭建及固件烧录