0
点赞
收藏
分享

微信扫一扫

vue3中axios的使用(二)

343d85639154 2022-05-31 阅读 67


配置参数

​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() {})

举报

相关推荐

0 条评论