zzh-axios v1.1.0
一个简单的 Axios(自用)
支持功能
- 请求数据拦截器
- 响应数据拦截器
- 支持 promiseAPI
- 支持请求数据和响应数据转换
- JSON 数据自动转换
- 客户端防止 XSRF
参数说明
- axios(config)
axios 方法接收一个 config 对象
- config.url: string
config.url <必须> 指定请求接口,参数类型为一个 string
- config.method?: Method
config.method
[可选]
指定请求方法,默认为 get 方法,如果 data 中有数据则默认为 post 方法,参数类型为常用的请求方法 - config.data?: any
config.data
[可选]
请求接口需要发送的数据,参数类型为对象 - config.params?: any
config.params
[可选]
,url 地址参数,参数类型为任意类型 - config.timeout?: number
config.timeout
[可选]
,指定请求超时时间(毫秒数),参数类型为 number - config.headers?: number
config.headers
[可选]
,请求头部,参数类型为对象 - config.responseType?: XMLHttpRequestResponseType
config.responseType
[可选]
,指定响应数据类型,参数类型 XMLHttpRequestResponseType - config.transformRequest?: (config:config)=>config
config.transformRequest
[可选]
,发起请求前会调用该回调函数,参数类型函数 - config.transformResponse?: (data:data)=>data
config.transformResponse
[可选]
,请求响应后会调用该回调函数,参数类型函数 - config.withCredentials?:boolean
config.withCredentials
[可选]
,发起请求时是否携带 cookie,参数类型 boolean - config.onDownloadProgress?: (e.ProgressEvent)=>void
config.onDownloadProgress
[可选]
,下载文件数据时会调用该函数,参数类型函数 - config.onUploadProgress?: (e.ProgressEvent)=>void
config.onUploadProgress
[可选]
,上传文件数据时会调用该函数,参数类型函数 - config.validateStatus?: (status:number)=>boolean
config.validateStatus
[可选]
,自定义响应数据安全范围,默认 200~300,参数类型函数 - config.paramsSerializer?:(params:any) => string
config.paramsSerializer
[可选]
,自定义解析 params 参数,参数类型函数 - config.baseURL?: string
config.paramsSerializer
[可选]
,请求发起的公共头部,如果 url 是一个绝对路径则不作处理,参数类型函数 - config.xsrfCookieName?:string
config.xsrfCookieName
[可选]
,请求发起时在 cookie 中寻找的 token 参数,参数类型 string - config.xsrfHeaderName?:string
config.xsrfHeaderName
[可选]
,请求发起时 token 的头部,参数类型 string - axios.defaults.get
默认的请求方法
- axios.defaults.timeout
默认的超时时间
- axios.defaults.headers.common
默认的请求公共头部
- axios.defaults.xsrfCookieName
默认的 cookie token
- axios.defaults.xsrfHeaderName
默认的 token 请求头部
方法说明
- axios.post(url:string,data?:any,config?:config):promise
post 请求 url<必须> data
[可选]
axios.put(url:string,data?:any,config?:config):promise
put 请求 url<必须> data
[可选]
config 可选axios.patch(url:string,data?:any,config?:config):promise
patch 请求 url<必须> data
[可选]
config 可选axios.get(url:string,params?:any,config:?config):promise
get 请求 url<必须> params
[可选]
config 可选axios.delete(url:string,params?:any,config?:config):promise
delete 请求 url<必须> params
[可选]
config 可选axios.head(url:string,params?:any,config?:config):promise
head 请求 url<必须> params
[可选]
config 可选axios.options(url:string,params?:any,config?:config):promise
options 请求 url<必须> params
[可选]
config 可选axios.request(url:string,config:config):promise
request 方法 url<必须> config<必须>
axios.interceptors.request.use((config)=>void):number
请求拦截器,参数函数,接收参数 config,返回一个 id
axios.interceptors.response.use((data)=>void):number
响应拦截器,参数函数,接收参数 config,返回一个 id
axios.interceptors.response.eject(id:number):void
根据 id 删除指定的响应拦截器
axios.interceptors.request.eject(id:number):void
根据 id 删除指定的请求拦截器