为什么ajax调用超时无法正常工作

时间:2013-01-11 12:32:43

标签: javascript ajax json timeout

在我的ASPX页面中,我调用了一个javascript函数,其中包含一个5秒超时的Ajax调用。

我首先尝试在关闭互联网连接时调用此功能,并且超时工作正常。但是当我第二次调用这个函数时,Ajax调用直接调用成功函数,而不等待超时和后续的错误函数。

这是ajax调用

$.ajax({
     type: "POST",
     url: pageUrl + "/SubmitAnsGetNewQue",
     data: jsonParamsForSbmt,
     timeout: 5000,
     contentType: "application/json; charset=utf-8",
     dataType: "json",
     async: true,
     success: SetNextQueSet,
     error: OnErrorCall
});

1 个答案:

答案 0 :(得分:3)

timeout不是你在这个上下文中的想法,它是jQuery等待ajax请求返回的时间量(以毫秒为单位)。

如果服务器回复花费的时间超过5秒,则不会触发回调。

<强>超时

  

设置请求的超时(以毫秒为单位)。这将覆盖使用$ .ajaxSetup()设置的任何全局超时。超时时间从$ .ajax调用点开始;如果其他几个请求正在进行且浏览器没有可用的连接,则请求可能会在发送之前超时。在jQuery 1.4.x及更低版本中,如果请求超时,XMLHttpRequest对象将处于无效状态;访问任何对象成员可能会抛出异常。仅在Firefox 3.0+中,超时无法取消脚本和JSONP请求;即使在超时时间之后到达,脚本也会运行。

docs