axios请求封装

1、config.js

配置axios的基本参数

export default {  
method: 'get', 
 baseURL: 'http://', // 基地址 
 imgBaseUrl: 'http://', // 图片基地址  
 headers: {    
 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'    
 // 'Content-Type': 'text/plain;charset=UTF-8'    
 // 'Content-Type': 'application/json;charset=utf-8'    
 // 这种是不支持的    
 //  浏览器跨域并不支持application/json的Content-Type,即使后台设置了允许的跨域头部参数,依然会报错  
 },  
 timeout: 10000,  
 // 携带凭证  
 withCredentials: false,  
 // 返回数据类型  
 responseType: 'json'}

2、api.js

import axios from 'axios'
import config from './config.js'
import qs from 'qs'

axios.interceptors.request.use(config => {  
	if (config.method === 'post') {    
		config.data = qs.stringify(config.data)  
	}  
	return config
}, error => {  
	Promise.reject(error)
})

class API {  
// axios POST  
post (url, data = {}) {    
	if (url.indexOf('messageSave') !== -1) {
	      config.responseType = 'json'	
	} else {
	      config.responseType = ''
	}    
	config.data = qs.stringify(data)    
	return this._handle(axios.post(url, data, config))  
	}
// axios GET  
get (url) {
	return this._handle(axios.get(url, config))  
}
// promise handle  
_handle (func) {
    return func.then(res => {      
    	// console.log('_____后端返回结果_______', res)      
    	if (!res.data) {
            console.log('返回值为null', res)        
            return Promise.reject(new Error('无返回值'))      
    	} else if (res.data.stateType === 1) { // 1 失败
        	return Promise.reject(new Error(res.data.stateMsg))      
        } else if (res.data.stateType === 0) { // 0 成功 
               return Promise.resolve(res.data.stateValue)      
	} else { // 其他状态
		return Promise.reject(new Error(res.data.stateMsg))      
	}    	
    }).catch(erro => {      
 	// console.log('_____后端错误_______', erro)      
 	// 除去Error:      
	this.popUp(erro.toString().split(':')[1])      
	return Promise.reject(new Error(erro))    
	})  
    }
 
export default API

3、使用

import API from '../js/api.js'
const api = new API()


api.post('xxxxxxxxx/xxxxxxxxx', {xx1: that.xx1}).then(res => {
     console.log('获取成功==res=', res)      
     }).catch(err => {     
           console.log('获取失败==error=', err)    
     })
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值