axios的二次封装
'use strict'
import axios from 'axios'
import qs from 'qs' var host = "https://www.easy-mock.com/mock/5bb02bc0a0afc503f502a292/example"; axios.interceptors.request.use(config => {
// loading
//请求拦截
return config
}, error => {
return Promise.reject(error)
}) axios.interceptors.response.use(response => {
//响应拦截
return response
}, error => {
return Promise.reject(error.response)
}) function checkStatus(response) {
// loading
// 如果http状态码正常,则直接返回数据
if(response && (response.status === 200 || response.status === 304 || response.status === 400)) {
var res = response.data || {};
try{
if(typeof res == "string"){
res = JSON.parse(res);
}
//还可以判断数据是否正确
}catch(e){
console.warn("不是一个json数据:",res);
} //用于判断数据是否正确
if(res.success){
return res;
}else{
console.error("数据请求错误");
return Promise.reject(res);
} }else{
// 异常状态下,把错误信息返回去
//处理错误情况 return Promise.reject(response)
}
} export default {
post(url, data) {
data = data || {};
return axios({
method: 'post',
url: host + url,
data: qs.stringify(data),
timeout: 10000,
}).then(checkStatus).catch((e)=>{
console.error("统一处理的错误",e);
return Promise.reject(e);
});
},
get(url, params) {
params = params || {};
return axios({
method: 'get',
url: host + url ,
params, // get 请求时带的参数
timeout: 10000,
}).then(checkStatus).catch((e)=>{
console.error("统一处理的错误",e);
return Promise.reject(e);
});
}
}
import $http from "./http";
$http.get("/demo/secret",param).then((ret)=>{
console.info(ret);
return ret;
});
axios的二次封装的更多相关文章
- vue中axios的二次封装
我们做项目时,虽然axios也可以直接拿来用,但是对接口比较零散,不太好进行维护,也会产生大量的重复代码,所以我在这对axios进行了统一接口处理 第一步,先在src中的公共文件夹中如utils里新建 ...
- vue项目中对axios的二次封装
近来在使用vue重构公司m站时,使用了axios来进行数据的请求,由于项目的需要,对axios进行了二次封装,点击进入axios //引入axios import axios from 'axios' ...
- axios 请求二次封装
/** * 封装get方法 * @param url * @param data * @returns {Promise} */ export function get(url, params) { ...
- axios 简单二次封装
import axios from 'axios' import { Message } from 'element-ui'; // 设置baseURL //axios.defaults.baseUR ...
- Vue:对axios进行简单的二次封装
主要做3点: 1.配置一个请求地址前缀 2.请求拦截(在请求发出去之前拦截),给所有的请求都带上 token 3.拦截响应,遇到 token 不合法则报错 // 对 axios 的二次封装 impor ...
- 原生 Ajax 封装 和 Axios 二次 封装
AJAX 异步的JavaScript与XML技术( Asynchronous JavaScript and XML ) Ajax 不需要任何浏览器插件,能在不更新整个页面的前提下维护数据,但需要用户允 ...
- axios 二次封装
一般项目往往要对 axios 库进行二次封装,添加一些自定义配置和拦截器等 案例 ./service/axios.js 1234567891011121314151617181920212223242 ...
- 【vue】axios二次封装,更好的管理api接口和使用
在现在的前端开发中,前后端分离开发比较主流,所以在封装方法和模块化上也是非常需要掌握的一门技巧.而axios的封装也是非常的多,下面的封装其实跟百度上搜出来的axios封装或者axios二次封装区别不 ...
- 使用Vue CLI 3将基于element-ui二次封装的组件发布到npm
前言:之前在网上找的好多都是基于vue-cli 2.x的,而使用vue-cli 3的文章比较少,Vue CLI 3 中文文档,所以我在自己尝试的时候把几篇文章结合了一下,调出来了我想要的模式,也就是V ...
随机推荐
- 彻底搞懂Python的字符编码
前言:中文编码问题一直是程序员头疼的问题,而Python2中的字符编码足矣令新手抓狂.本文将尽量用通俗的语言带大家彻底的了解字符编码以及Python2和3中的各种编码问题. 一.什么是字符编码. 要彻 ...
- 实现一个hoverDelay延迟hover
实现一个hoverDelay延迟hover author: @TiffanysBear 需求背景 经常在页面开发中,需要使用hover事件来触发相应的网络请求或页面DOM元素显示切换,需要考虑的问题就 ...
- Path.Combine Method
https://docs.microsoft.com/en-us/dotnet/api/system.io.path.combine?view=netframework-4.8#System_IO_P ...
- Flutter移动电商实战 --(45)详细页_说明区域UI编写
pages/details_page/details_expain.dart 详情页面引用组件 效果展示: 最终代码: import 'package:flutter/material.dart'; ...
- python 使微信自动回复
https://zhuanlan.zhihu.com/p/308999073 今天是鄙人的生日,欢luo过后想写点关于itchat的文章~ (不小心暴露年龄了,是的,我已经16岁了~~) 言归正传,这 ...
- Centos7.4服务器安装Laravel5.7详细讲解(2018-10-27)
一.在阿里云或者腾讯云选择Centos7并购买服务器 二.安装宝塔面板和php运行环境 1.输入命令 yum install -y wget && wget -O install.sh ...
- jar启动脚本shell
#!/bin/bash#这里可替换为你自己的执行程序,其他代码无需更改 APP_NAME=/opt/server/msp/health-api/health-2.0.2.jar#使用说明,用来提示输入 ...
- php 获得访问者的IP
<?php $user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : ...
- SSH工具登录远程指定节点时输入用户名密码方式【我】
通过堡垒机部署项目, 一种方式:先把补丁传到接入机,然后用CRT等命令行工具登录指定接入机,然后用SCP命令把 补丁传到 生产服务器,比如 scp -P90010 /app/backup/packet ...
- react中异步的使用
let promise; promise = this.props.corporationService.preSearchPage(params); promise.then((data) => ...