配置参数
auth
表示使用http基础验证,并且提供凭据。responseEncoding
表示用于解码数据的编码,默认的值是utf-8
。onDownloadProgress
用来表示下载处理进度事件。相反的是上传事件进度事件为onUploadProgress
。如果我们想要定义nodejs中允许的响应内容的最大大小,可以使用maxContentLength
,这个单位是字节。如果定义允许的http请求的内容的最大大小可以使用maxBodyLength
,这个单位也是字节而且只能适用于node的选项。cancelToken
表示用于取消请求的cancel和token。decompress
表示是否应该自动解压缩响应正文,默认值为true。
decompress: true;
responseEncoding: 'utf8';
maxContentLength: 2000;
如果我们想要向服务器同时发送多个请求,使用Promise.all
可以实现。如果想要创建一个实例,我们可以使用自定义配置然后调用axios.create
去创建。再通过这个实例去向服务器发送请求,这样的好处是不需要每次在请求的时候去重复配置选项。在请求中相同的配置选项,我们可以通过给配置选项设置默认值的方法实现。设置默认值我们可以在main.js中去设置也可以在自定义实例中去设置。配置的这些选项只有我们使用这个实例发送请求时才会生效。配置顺序是先从defaults.js
中使用库的默认值,再使用defaults
的属性,,最后才是请求的config
参数。
axios.defaults.baseURL = 'xxx';
axios.defaults.withCredentials = true;
我们在登录验证的时候,为了处理http的请求和响应,我们使用axios拦截器。拦截器有请求拦截器和响应拦截器。这两种都会在请求或者响应式在then
或者catch
方法处理前被拦截。添加请求拦截器后,我们可以针对发送请求之前的内容进行处理,还可以对出现的错误进行处理。添加响应拦截器后,我们需要对响应的数据进行处理或者当响应出错时,当axios的拦截器和http状态码一起使用时,可以判断用户是否已经登录,可以处理用户长时间没有操作,导致用户在服务端失效或者管理员取消用户的使用。当我们想要移除拦截,可以使用下面的方法。除了调用移除事件进行移除,我们还可以自定义axios
的实例添加拦截器。
const webInfo = axios.interceptors.request.use(function () {});
axios.interceptors.request.eject(webInfo);
// 自定义
const webLit = axios.create();
instance.interceptors.request.use(function() {})