如何将Axios网络请求的30秒响应超时时间调整为60秒
完全可以调整该超时时间,Axios 本身支持自定义请求超时时长,你可以按照以下两种方案修改:
方案1:仅针对当前请求单独配置60秒超时
直接在$get方法的第二个参数传入配置对象,指定timeout参数即可,参数单位为毫秒,60秒对应值为60000。
修改后的代码如下:
self.$axios .$get( `https://verifiedpro.herokuapp.com/getvmsstate?kiosk=${self.kiosk}`, { timeout: 60000 } ) .catch(error => { console.log(error); location.reload(); }) .then(response => { console.log(response.username); }); });
单请求配置的优先级高于全局默认配置,该配置只会影响当前这一个请求的超时逻辑。
方案2:全局配置所有请求默认超时为60秒
如果你需要所有通过$axios发起的请求都默认使用60秒超时,可以在项目初始化Axios的位置添加全局配置:
// 常规Axios全局配置 axios.defaults.timeout = 60000 // 如果你是在Vue项目中挂载到原型的$axios,使用以下写法 Vue.prototype.$axios.defaults.timeout = 60000
注意事项
- 超时计时从请求发起时开始计算,到服务端返回响应的总时长超过设定值时,就会触发超时错误进入catch逻辑
- 修改前建议确认服务端对应的接口超时限制是否大于等于60秒,避免服务端先断开连接导致请求提前报错
内容的提问来源于stack exchange,提问作者Daryl Wong
相关产品推荐
相关产品推荐

