后端如何判断前端调用API超时。
var xhr = new XMLHttpRequest();
xhr.open('GET', '/server', true);
xhr.timeout = 2000; // 超时时间,单位是毫秒
xhr.onload = function () {
// 请求完成。在此进行处理。
};
xhr.ontimeout = function (e) {
// XMLHttpRequest 超时。在此做某事。
};
xhr.send(null);
13 回答12.8k 阅读
7 回答1.9k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答896 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
6 回答1.1k 阅读
给你一个方案:
在前端请求的时候记录请求时间(开始时间),记录接口返回数据接口的时候(结束时间),记录curl状态值。
状态值获取方法:$httpCode = curl_getinfo($ch,CURLINFO_HTTP_CODE);
比如,设置10s 为超时。
当 结束时间 - 开始时间 》10s 的时候,记录到redis队列。
当 状态值 != 200 的请求,记录到redis队列。
然后后端消耗队列,比如 写到数据,或者 发短信,发邮件 等等。
有问题,再问我即可。