这一章主要实现一些配置化,让用户可以进行配置
- 默认配置
- transformRequest 和 transformResponse
- axios.create API
目录:
默认配置
添加 defaults.ts
:
import {AxiosRequestConfig} from './types';
const defaults: AxiosRequestConfig = {
method: 'get',
timeout: 0,
headers:{
common: {
Accept: 'application/json, text/plain, */*',
}
},
}
const methodsNoData = ['delete','get','head','options'];
methodsNoData.forEach(method => {
defaults.headers[method] = {}
})
const methodsWithData = ['post','put','patch'];
methodsWithData.forEach(method => {
defaults.headers[method] = {
'Content-Type': 'application/x-www-form-urlencoded',
}
})
export default defaults;
这个文件主要是定义一些默认配置。
添加 core/mergeConfig.ts
文件
import { AxiosRequestConfig } from '../types';
import { isPlainObject,deepMerge } from '../helpers/util';
const strats = Object.create(null);
function defaultStart(val1:any,val2:any):any {
return typeof(val2) !== 'undefined' ? val2: val1;
}
function formval2Start(val1:any,val2:any):any {
if(typeof val2 !== 'undefined') {
return val2;
}
}
function deepMergeStrat(val1: any,val2:any): any {
debugger;
if(isPlainObject(val2)) {
return deepMerge(val1,val2);
} else if(typeof val2 !== 'undefined') {
return val2
} else if(isPlainObject(val1)) {
return deepMerge(val1);
} else if(typeof val1 !== 'undefined&#