【问题标题】:Extends Jquery ajax complete function扩展 Jquery ajax 完整功能
【发布时间】:2012-10-22 21:41:37
【问题描述】:

我正在使用 jQuery ajax 向服务器发出一些请求。我必须在内容加载后添加一些验证(错误处理)。最简单的方法是在 success() 回调上添加验证。但是,我需要在我已经拥有的所有实现中实现该回调。有没有办法扩展成功回调?将在其余回调代码之前调用的东西?这样我可以在一个地方为每个成功添加验证,并在每次调用成功回调时执行。

我尝试了preFilters,转换器,但它们不符合我的需求。

【问题讨论】:

  • 您必须在各处复制粘贴验证,这听起来有点……不对。或许你应该考虑把这个过程再抽象一点,提取一些共同的东西。
  • 我想我会这样做,但我仍然必须重构每个 ajax 调用。 (顺便说一句,我在应用中有 182 个电话)。

标签: javascript jquery ajax callback


【解决方案1】:

来自jQuery.ajax

从 jQuery 1.5 开始,成功设置可以接受函数数组。每个函数都会被依次调用。

所以,这样的事情应该可以工作

$.ajax(url, {
    success: [
        commonfunction,
        function(...){ /* code */ }
    ],
});

虽然您仍然需要修改一些代码。

【讨论】:

  • 谢谢。这解决了我的部分问题,我使用不同的库,如数据表和使用 AJAX 的库。我会为图书馆找到一种方法。目前我将应用数组并为 ajax 创建一个新级别,这意味着不是调用 $.AJAX,而是创建仅使用我的方法和 ajax 的 $.myAjax。
【解决方案2】:

您可以使用$.ajaxSetup()$.ajaxSuccess 为AJAX 请求设置默认值

【讨论】:

  • 如果我设置了默认成功,然后一个实现设置了新的成功,两者都会被执行吗?
  • @user1766688 是的。至少在.ajaxSuccess 的情况下。但似乎在.ajaxSuccess 注册的函数是在 AJAX 请求的成功函数之后执行的。
猜你喜欢
  • 2018-04-12
  • 1970-01-01
  • 2023-03-06
  • 1970-01-01
  • 2013-09-22
  • 2012-02-06
  • 1970-01-01
  • 1970-01-01
  • 2013-05-20
相关资源
最近更新 更多