【问题标题】:Get last ajax call in jquery在jquery中获取最后一个ajax调用
【发布时间】:2013-06-06 08:24:56
【问题描述】:

我想在我的代码中进行最后一次 ajax 调用。

这是我的代码

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script src="Scripts/jquery-1.7.1.min.js"></script>


<script>
    function getCreateAccount() {
        $.ajax({
             type: "GET",
             url: "/Account/Register/",
             contentType: "application/json; charset=utf-8",
             dataType: "json"
         });
        console.log($.ajax.mostRecentCall.args[0]);
    }

</script>

</head>
<body>

</body>
</html>

但是当我在控制台中看到它说“TypeError: $.ajax.mostRecentCall is undefined”。

谢谢,

【问题讨论】:

  • 尝试使用标志变量
  • 使用var ajaxcall = $.ajax({ type: "GET", ...并尝试是否可以使用ajaxcall变量来获取您需要的信息
  • 这篇文章有帮助吗? stackoverflow.com/questions/4176956/…
  • 这是 Jasmine 框架吗?你似乎没有加载 Jasmine
  • 您想知道最近的发起调用,还是最近完成的

标签: ajax jquery jasmine


【解决方案1】:

您可以注册一个全局 ajaxComplete 处理程序,每次 AJAX 调用完成时都会调用该处理程序。

有了这个,你可以模拟 Jasmine $.ajax.calls.mostRecentCall() 属性:

$(document).ajaxComplete(function(ev, jqXHR, settings) {
    $.ajax.mostRecentCall = jqXHR;
});

在这种情况下,我保存的是 jqXHR 对象,而不是传递给 $.ajax 的确切参数集。

当然,请注意,在调用 $.ajax 后不会立即填充它 - 直到至少一个调用完成后才会填充它。

【讨论】:

  • 不不不!如果您正确初始化 Jasmine,并事先调用 spyOn($, "ajax"),那么它应该可以正常工作!
  • @jackocnr 请注意,OP 表示他们希望不使用使用 Jasmine 来获得此功能。
【解决方案2】:

我认为 mostRecentCall 函数来自Jasmine 框架。您必须在代码中包含 Jasmine。

mostRecentCall 在 jquery 中不存在!

【讨论】:

    【解决方案3】:

    在 ajax jquery 中没有像“$.ajax.mostRecentCall”这样的。

    正如 PSR 提到的,您可以尝试使用标志变量

    【讨论】:

    • 你能放点东西吗?
    【解决方案4】:

    在记录之前添加警报将为完成 ajax 调用提供足够的时间。(应该可以解决问题)

    如果你不想要任何警报,那么你可以使用 sleep() 方法

    【讨论】:

      【解决方案5】:

      没有什么像

      $.ajax.mostRecentCall
      

      在 Jquery 中。那是来自 Jasmine.js。除非并且直到您添加对 Jasmine.js 的引用并按照步骤监视函数,否则它将给您一个错误。

      您可能需要参考 Jasmin.js 的 documentation。这是link,它展示了如何使用它。

      【讨论】:

        猜你喜欢
        • 2012-09-10
        • 2015-02-13
        • 2011-03-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多