axios配置,进行全局配置,优先顺序,拦截器
全局axios默认值
axios.defaults.baseURL = 'https: //api.example.com ’ ;
axios.defaults.headers.common [ ‘Authorization’ ] = AUTH_TOKEN;
axios.defaults.headers.post [ ‘Content-Type’ ] = ‘application / x-www-form-urlencoded’ ;
自定义实例默认值
//创建实例时设置默认设置
const instance = axios.create({
baseURL:'https ????/api.example.com ’
});
//创建实例后更改默认值
instance.defaults.headers.common [ ‘Authorization’ ] = AUTH_TOKEN;
配置优先顺序
Config将以优先顺序合并。顺序是在lib / defaults.js中找到的库默认值,然后defaults是实例的属性,最后config是请求的参数。后者将优先于前者。这是一个例子。
//使用库提供的配置默认值创建一个实例
//此时,超时配置值为0,这与库的默认值
const instance = axios.create();相同。
//覆盖默认的库超时
//现在,使用该实例的所有请求将等待2.5秒,然后才使instance.defaults.timeout = 2500超时;
//覆盖此请求的超时,因为它花了很长时间
instance.get(’/ longRequest’,{
timeout:5000
});
拦截器
您可以先拦截请求或响应,然后再由then或处理catch。
//添加请求拦截器
axios.interceptors.request.use(function(config) { //在发送请求之前做一些事情return config; },function(error) { //做一些有请求错误的事情return Promise .reject(error ); });
//添加响应拦截器
axios.interceptors.response.use(function(response) { //使用响应数据返回响应; },function(error) { //使用响应错误返回Promise .reject(error) ; });
如果以后可能需要删除拦截器,则可以。
const myInterceptor = axios.interceptors.request.use(函数() {/…/});
axios.interceptors.request.eject(myInterceptor);
您可以将拦截器添加到axios的自定义实例中。
const instance = axios.create();
instance.interceptors.request.use(函数() {/…/});
本文地址:https://blog.csdn.net/qq_42264793/article/details/110120930
上一篇: Dimen 自动生成