Axios 错误处理、CancelToken 取消请求

发布于 2024-10-26 12:01:36 字数 1466 浏览 7 评论 0

错误处理

axios.get('/user/123').catch(function(error){
  if(error.response){
    // 请求已发出,但服务器响应的状态码不在 2xx 范围内
    console.log(error.response.data)
    console.log(error.response.status)
    console.log(error.response.headers)
  }else{
    console.log(error.message)
  }
  console.log(error.config)
})

使用 validateStatus 配置选项定义一个 HTTP 状态码的错误范围

axios.get('/user/123',{
  validateStatus:function(status){
    return status < 500; // 状态码大于或等于 500 才会 reject
  }
})

取消请求

使用 CancelToken 取消请求,可以使用同一个 CancelToken 取消多个请求

使用 CancelToken.source 工厂方法创建 cancel token

var CancelToken = axios.CancelToken;
var source = CancelToken.source();

axios.get('/user/123',{
  cancelToken:source.token
}).catch(function(thrown){
  if(axios.isCancel(thrown)){
    console.log(throw.message)
  }else{
    // 处理错误
  }
});

// 取消请求(message 参数可选)
source.cancel('Operation canceled by the user')

还可以通过传递一个 executor 函数到 CancelToken 的构造函数来创建 cancel token

var CancelToken = axios.CancelToken;
var cancel;
axios.get('/user/123', {
  cancelToken: new CancelToken(function executor(c){
    // executor 函数接收一个 cancel 函数作为参数
    cancel = c;
  })
});

// 取消请求
cancel();

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

人事已非

暂无简介

0 文章
0 评论
22 人气
更多

推荐作者

安静被遗忘

文章 0 评论 0

喔爱吃橙子

文章 0 评论 0

草莓味的萝莉

文章 0 评论 0

梦里兽

文章 0 评论 0

mb_83J3Cyxa

文章 0 评论 0

时间海

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文