作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
好吧,为了争论,假设 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/
我是一名优秀的程序员,十分优秀!