Jquery AJAX 全局超时(整个应用程序)我正在使用 $.get 和 $.post(不能使用 $.ajax)

Posted

技术标签:

【中文标题】Jquery AJAX 全局超时(整个应用程序)我正在使用 $.get 和 $.post(不能使用 $.ajax)【英文标题】:Jquery AJAX Global Timeout (Entire Application) Im using $.get & $.post (can't use $.ajax) 【发布时间】:2013-05-31 18:23:51 【问题描述】:

我已经用 jquery 创建了 Spring Web 应用程序。对于每个使用 $.get 或 $.post(不是 $.ajax)的 ajax 调用。

但我没有处理任何 ajax 超时或 ajax 错误。现在我的应用程序部署在服务器上,我无法进行任何重大更改。

请帮助我如何处理整个 Web 应用程序的 AJAX 超时,我应该在全球范围内 alert("Ajax Timeout")。另外,无论出现什么 ajax 错误,我都应该向用户提醒错误消息。

我听说过 $.ajaxSetup$.ajaxError 但是如何在我的网络应用程序中使用它们,我需要在 document.ready 中添加它吗??

【问题讨论】:

【参考方案1】:

你可以使用 $.ajaxSetup(timeout: 100);

【讨论】:

【参考方案2】:

您可以将ajaxError 处理程序附加到文档

$(function()
    $(document).ajaxError(function(event, request, settings) 
         //Do whatever
    );
);

编辑:要全局设置 Ajax 超时,您必须使用 ajaxSetup

$.ajaxSetup(
    timeout: 2000 //Time in milliseconds
);

注意$.ajaxSetup 应该在其他 Ajax 调用之前设置。

【讨论】:

如何全局设置ajax超时时间? 请求超时时如何添加提示信息? 我正在使用 ajaxSetup 但超时对我不起作用。不改变任何东西。【参考方案3】:

这是在您的应用程序中设置ajaxError 的方法。

在准备好的文档中执行此操作一次

$(document).ajaxError(function (event, xhr) 
    console.log(xhr.status + ': ' + xhr.statusText);
);

xhr.status是返回的http状态码,最常见的是404(未找到)、201(已创建)、403(已禁止),这些状态码的列表参考:@ 987654321@.

【讨论】:

如何全局设置ajax超时时间?

以上是关于Jquery AJAX 全局超时(整个应用程序)我正在使用 $.get 和 $.post(不能使用 $.ajax)的主要内容,如果未能解决你的问题,请参考以下文章

jQuery - 学习笔记 - 全局添加ajax重定向

jQuery.ajax() - 如何最好地处理超时?

jQuery AJAX 超时调用函数

jquery中的ajax

包装 jQuery 的 $.ajax() 方法来定义全局错误处理

Jquery中AJAX参数详细介绍