如何判定前端调用后端接口超时?

后端如何判断前端调用API超时。

阅读 15.8k
3 个回答

给你一个方案:
在前端请求的时候记录请求时间(开始时间),记录接口返回数据接口的时候(结束时间),记录curl状态值。
状态值获取方法:$httpCode = curl_getinfo($ch,CURLINFO_HTTP_CODE);
比如,设置10s 为超时。
当 结束时间 - 开始时间 》10s 的时候,记录到redis队列。
当 状态值 != 200 的请求,记录到redis队列。
然后后端消耗队列,比如 写到数据,或者 发短信,发邮件 等等。

有问题,再问我即可。

示例

var xhr = new XMLHttpRequest();
xhr.open('GET', '/server', true);

xhr.timeout = 2000; // 超时时间,单位是毫秒

xhr.onload = function () {
  // 请求完成。在此进行处理。
};

xhr.ontimeout = function (e) {
  // XMLHttpRequest 超时。在此做某事。
};

xhr.send(null);

https://developer.mozilla.org...

来后端这拿了东西就给前端丢过去了,丢完了就不管前端了,除非您是websorcket,不然你不知道前端是否超时哒,坐等楼下大佬解答

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题