我有以下功能。如何在函数中返回成功,错误,完成的值?
function checkstatus() {
$.ajax({
url: "foo.json",
beforeSend : function(jqXHR, settings) {
console.info('in beforeSend');
console.log(jqXHR, settings);
},
error : function(jqXHR, textStatus, errorThrown) {
alert(" 500 data still loading"+ jqXHR + " : " + textStatus + " : " + errorThrown);
console.info('in error');
console.log(jqXHR, textStatus, errorThrown);
},
complete : function(jqXHR, textStatus) {
alert(" complete "+ jqXHR + " : " + textStatus);
console.info('in complete');
console.log(jqXHR, textStatus);
},
success: function(data, textStatus, jqXHR){
alert(" success "+ jqXHR + " : " + textStatus);
console.info('in success');
console.log(data, textStatus, jqXHR);
}
});
}
答案 0 :(得分:0)
尝试类似:
function checkstatus( callback ) {
$.ajax({
.......
success: function(data, textStatus, jqXHR){
callback(data);
}
});
}
//and callback
checkstatus(function (data) {
alert(data);
});
答案 1 :(得分:0)
您无法使用异步请求从单独的函数返回值,因为.ajax
调用之后的代码(您将返回的位置)将在 ajax回调之前执行。相反,您应该在回调上创建一个依赖项。
如果请求是同步的,您可以这样做:
function checkStatus() {
var statuses = [];
$.ajax(...
success: function (data, textStatus, jqXHR) {
statuses.push(textStatus);
}
...
return statuses;
}