如何使这个小功能“图像存在”返回ajax请求是否成功?
function imageExists(path){
$.ajax({
url: path,
type: 'HEAD',
error:
function(){
return false;
},
success:
function(){
return true;
}
});
}
答案 0 :(得分:4)
您将在success
函数或error
函数中返回AJAX调用的结果,因此应从该点调用接下来应调用的任何函数。< / p>
因为AJAX请求是异步的(我建议不要让它成为阻塞同步调用),所以你发出请求但不知道它什么时候会返回;它会在它返回时给你打电话,所以你只需要提供一些东西来打电话。
function imageExists(path){
$.ajax({
url: path,
type: 'HEAD',
error:
function(){
iveReturned(false);
},
success:
function(){
iveReturned(true);
}
});
}
function iveReturned(result) {
// code here to do something following AJAX response.
}
答案 1 :(得分:3)
我相信你必须使用同步模式并使用一个单独的变量来存储返回值。
function imageExists(path){
var isSuccess;
$.ajax({
url: path,
type: 'HEAD',
async: false,
error:
function(){
isSuccess = false;
return false;
},
success:
function(){
isSuccess = true;
return true;
}
});
return isSuccess;
}
答案 2 :(得分:1)
创建一个var以在全局级别保存响应,然后将async设置为false。然后,您需要在成功或错误函数中设置该var。
http://api.jquery.com/jQuery.ajax/
function imageExists(path){
myVar = null;
$.ajax({
url: path,
type: 'HEAD',
error:
function(){
myVar = false;
},
success:
function(){
myVar = true;
},
async: false
});
}