gpt4 book ai didi

javascript - 如何将 jQuery.ajax() 中的成功和错误处理程序的值返回给父方法?

转载 作者:行者123 更新时间:2023-11-30 18:41:29 25 4
gpt4 key购买 nike

好吧,为了争论,假设 AJAX 调用必须是异步的

基本上,我有一个 jQuery AJAX 调用,我希望成功和错误处理程序向父方法返回一个值:

下面的代码不起作用,因为 AJAX 调用是异步的。因此,在接收到 repsonse 之前返回函数底部的返回值:

var isValid = false;

$.ajax({
type: "POST",
url: myurl,
dataType: "JSON",
data: $myData,
async: true,
success: function(data) {
isValid = true;
},
error: function() {
isValid = false;
}
});

return isValid;

那么,对于异步 AJAX 调用,有什么方法可以将值 BACK 传递给调用方法吗?

最佳答案

这是我想出的解决方案,可以回答我的问题....(感谢@Rodaine 给我这个主意!)

在调用方法中,我指定了一个回调函数。这是包含 AJAX 调用的插件:

function ajaxCall(options) {
var url = options["url"] === undefined ? "" : options["url"];
var addLink = options["addLink"] === undefined ? "" : options["addLink"];

var $form = $(this).closest("form");
var $formParamsString = $form.serialize();

var aSuccess = [];
var aError = [];

if ($.isFunction(options["success"]))
aSuccess.push(options["success"]);

if ($.isFunction(options["error"]))
aError.push(options["error"]);

$.ajax({
type: "POST",
url: url,
dataType: "JSON",
data: $formParamsString,
async: true, // Asynchronous to allow for loading image
success: aSuccess,
error: aError
});
}

现在,当我调用这个函数时,我可以在选项对象中指定一个回调:

ajaxCall({
url: "myWebService.cfm",
success: function() {
alert("We did it!");
},
error: function() {
alert("Try again, fool!");
}
});

关于javascript - 如何将 jQuery.ajax() 中的成功和错误处理程序的值返回给父方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6752364/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com