当前位置: 首页 > news >正文

SpringBoot+VUE+Axios 【链接超时】 后端正常返回结果,前端却出现错误无法接收数据

一、错误原因及解决思路

错误提示表明前端发送的请求在默认的 2500ms 超时时间内没有得到服务器的响应,导致请求失败。尝试以下方法来解决这个问题:

  1. 增加请求超时时间:可以通过配置 Axios 请求对象的 timeout 属性来增加请求的超时时间,例如将其设置为 5000ms。
  2. 检查网络连接:如果网络连接存在问题,可能会导致请求响应不及时或超时。请确保网络连接稳定,并且没有防火墙或代理服务器阻止了请求的传输。
  3. 削减请求数据量:如果正在向服务器发送大量数据,可能会导致请求响应时间过长。请检查发送的请求数据,考虑削减其数据量或者优化其结构。
  4. 检查服务器状态:如果服务器存在负载过重或性能问题,可能会导致请求响应时间延迟或超时。请确保服务器状态正常,并且可以处理发送的请求。

通过以上方法中的任意一种或多种,都可以尝试解决 Vue 前端发送请求超时的问题。

二、我的解决方案

上下文环境: SpringBoot+VUE+Axios,前端发送请求,后端接收后向用户邮件发送验证码,邮件发送完毕,后端给前端反馈。

出现链接超时的原因: 后端发送邮件耗时长,超过了axios默认的超时时间

解决方案: 设置axios超时时间为更长的时间

原请求方法为:

this.$axios.post("http://localhost:xxxx/oa/user/sendEmailVerCode",param).then(rst => {this.emailCodeForm.afterEndCode = rst.data;this.emailCodeForm.sendCodeFlag=true;// 已发送验证码console.log(rst.data)}).catch(ex => {console.log(ex);});

在使用 $axios 发送请求时,通过配置 timeout 属性来增加请求的超时时间。具体实现方法如下:

this.$axios.post("http://localhost:xxxx/oa/user/sendEmailVerCode", param, {// 将超时时间设置为 20000mstimeout: 20000,}).then((rst) => {this.emailCodeForm.afterEndCode = rst.data;this.emailCodeForm.sendCodeFlag = true; // 已发送验证码console.log(rst.data);}).catch((ex) => {console.log(ex);});

在上述代码中,我们在 $axios.post() 方法的第三个参数中,将 timeout 属性设置为 20000ms,这意味着如果请求在 20000ms 内没有得到响应,Axios 会自动将其视为超时错误并返回一个错误信息。然后,我们可以通过 .then().catch() 方法处理请求的响应结果和错误信息。

需要注意的是,也可以在创建全局的 $axios 实例时设置默认的超时时间,例如:

import axios from 'axios';const instance = axios.create({baseURL: 'http://localhost:xxxx',timeout: 20000, // 默认的超时时间
});export default ({ app }, inject) => {inject('axios', instance);
};
http://www.lryc.cn/news/58714.html

相关文章:

  • 【状态估计】基于增强数值稳定性的无迹卡尔曼滤波多机电力系统动态状态估计(Matlab代码实现)
  • 快速排序的简单理解
  • 短视频多平台发布软件功能详解
  • 谷歌人机验证Google reCAPTCHA
  • VB+ACCESS电脑销售系统的设计与实现
  • 嵌入式开发:硬件和软件越来越接近
  • 亲测:腾讯云轻量应用服务器性能如何?
  • 编程语言,TIOBE 4 月榜单:黑马出现了
  • 基于DSP+FPGA的机载雷达伺服控制系统(二)电源仿真
  • SpringBoot整合Redis、以及缓存穿透、缓存雪崩、缓存击穿的理解分布式情况下如何添加分布式锁 【续篇】
  • 优漫动游告诉你:平面设计适合你吗?
  • 在Vue中,为什么从 props 中解构变量之后再watch它,无法检测到它的变化?
  • [源码解析]socket系统调用上
  • Jenkins部署与自动化构建
  • 网络编程三要素
  • 如何编写一个自己的web前端脚手架
  • 计算机网络第1章(概述)
  • grid布局
  • 博客平台打造出色的个人资料管理与展示:实用技巧与代码示例
  • 【genius_platform软件平台开发】第九十三讲:串口通信(485通信)
  • JavaScript动画相关讲解
  • InnoSetup制作安装包(EXE)
  • CASE WHEN函数语句多条件下使用详解
  • 2.31、守护进程(2)
  • 记录上传文件异常 /tmp/tomcat... (No space left on device)
  • 无向连通图中长度为 n 的循环
  • 打造出ChatGPT的,是怎样一群人?
  • 数据结构——栈与队列相关题目
  • Redhat6.7离线安装rabbitmq
  • EasyCVR平台基于GB28181协议的语音对讲配置操作教程