如何克服REST API中的超时问题?

时间:2018-10-18 06:04:28

标签: ajax rest api

我有一个存储过程,执行该过程需要10秒钟,并返回10,000条数据记录。 但是每次我调用API时,该调用都会导致连接超时。 如果我能够增加REST请求的超时,那么它将正常工作。

我的主要问题是:如果发生超时,如何在AJAX请求中得到超时错误,以便向用户显示发生了超时?每次AJAX调用失败,并且我都不会收到错误消息,表明发生了超时或找不到数据。

2 个答案:

答案 0 :(得分:3)

这是您可以用来检测超时错误并在用户的首页上显示的东西:

$.ajax({
    url: "/ajax_json_echo/",
    type: "GET",
    dataType: "json",
    timeout: 1000,
    success: function(response) { alert(response); },
    error: function(xmlhttprequest, textstatus, message) {
        if(textstatus==="timeout") {
            alert("got timeout");
        } else {
            alert(textstatus);
        }
    }
});​

答案 1 :(得分:1)

我认为如果您使用rest api,特别是作为客户端,最好保持超时。我观察到类似的连接超时问题,该问题通过将一段代码connection.setConnectTimeout(5000);将在5秒内超时。