我想在我的代码中进行最后一次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”。
谢谢,
答案 0 :(得分:7)
您可以注册一个全局ajaxComplete
处理程序,每次AJAX调用完成时都会调用该处理程序。
通过这种方式,您可以模拟Jasmine $.ajax.calls.mostRecentCall()
属性:
$(document).ajaxComplete(function(ev, jqXHR, settings) {
$.ajax.mostRecentCall = jqXHR;
});
在这种情况下,我正在保存jqXHR
对象,而不是传递给$.ajax
的确切参数集。
当然,请注意,调用$.ajax
后不会立即填充 - 在至少一个调用完成后才会填充。
答案 1 :(得分:3)
我认为 mostRecentCall 功能来自Jasmine框架。您必须在代码中包含Jasmine。
jquery中不存在mostRecentCall !
答案 2 :(得分:0)
在ajax jquery中没有像“$ .ajax.mostRecentCall”这样的内容。
正如PSR所提到的,你可以尝试使用标志变量
答案 3 :(得分:0)
在记录之前添加警报将为ajax调用提供足够的时间来完成。(应该这样做)
如果您不想要任何警报,那么您可以使用sleep()方法
答案 4 :(得分:0)
没有像
那样的东西$.ajax.mostRecentCall
在Jquery中。那是来自Jasmine.js。除非你直接添加对Jasmine.js的引用并遵循窥探函数的步骤,否则会给你一个错误。
您可能想要参考Jasmin.js的documentation。这是展示如何使用它的link。