想在axios上添加自定义的配置项如下:
axios({
url: 'xxxx',
methods: 'get',
mySet: '小钢炮' // 自定义配置项
});
上面的mySet在高版本0.17.1以上,拦截器中是读取不到的,因为被axios舍弃了。
要读到自定义配置可以拦截request方法,注意的是在拦截器中还是读不到的。
如下:
<script src="https://cdn.bootcdn.net/ajax/libs/axios/0.21.0/axios.min.js"></script>
<script type="text/javascript">
const realRequest = axios.Axios.prototype.request;
axios.Axios.prototype.request = function(config) {
// to do something
console.log(config);
return realRequest.call(this, config);
};
</script>
在ts中我是这样写的:
import Axios, { AxiosRequestConfig } from 'axios';
// 自定义配置类型
interface AxiosRequestConfigExtend extends AxiosRequestConfig {
mySet: string
}
const realRequest = Axios.prototype.constructor.Axios.prototype.request;
// 拦截request方法
Axios.prototype.constructor.Axios.prototype.request = function r(config: AxiosRequestConfigExtend) {
return realRequest.call(this, config);
};