问题描述

在前端开发中,发现一个处理时间比较长的请求一直没有返回数据。
浏览器开发工具 - Network - 请求的接口报红
经过定位问题后发现ajax请求遇到长时间加载时超过一定时间后会直接中断请求

接口报红


解决方法

检查自己代码中的ajax请求配置中是否设置了timeout,如果需求中有请求处理时间较长的接口,建议去除此项或者设置一个合适的时间并在timeout回调中设置超时的用户提示

ajax({
   url: url,
   type:'POST',
   data: data,
   async: async,
   contentType: "application/json; charset=UTF-8",
   traditional: true,
   timeout: 30000, //请求超时时间
   ...
})

总结

本篇文章讲述了ajax中timeout超时属性设置后会出现中断请求的问题及解决方法。在日常开发中只实现业务需求还是不够的,需要自测网页在极端网络环境下的展现情况,并解决问题,保持代码的健壮性,否则就会变成问题上线被用户发现。
关于ajax请求的相关可以查看我的其他文章。


洛阳醉长安行
57 声望3 粉丝

charging...