[英]xmlhttprequest sending POST twice in 3 minutes interval
我正在从webui启动python脚本。 该脚本需要1分钟到30分钟才能运行。 XMLHTTPREQUEST等待3分钟之内的响应,如果没有响应,它将重新启动脚本。
我希望脚本仅运行一次。 你能建议吗?
我在启动脚本时使用了以下三行:
var xhttp = new XMLHttpRequest();
xhttp.open("POST", "/run_script", true);
xhttp.send(datas);
真正的问题是脚本未发送可靠的200响应,如果脚本独立运行,可能会在开始时发生;如果POST请求需要输出,则可能在90秒后发生。 我在这里不知道具体细节,但如此长的响应时间通常表明该工作应在后台处理,并有单独的请求启动并检查它。
如果确实需要等到超时,那么防止这种低级“重试”功能的唯一可能方法就是在发生HTTP请求之前中止它:
setTimeout(() => {
if (xhttp.status !== 200) {
xhttp.abort();
console.log('Aborted before');
}
}, 179000); // 179 seconds, may need to adjust
请注意,这将触发错误事件, 并且可能不会停止已启动的过程,例如文件上传。 最新的AbortSignal形式的Fetch API具有类似的功能; 行为可能会有所不同。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.