Sag*_*gar 4 ajax jquery return-value file-exists
我想等到ajax调用完成并返回值.
function isFileExists(url) {
var res = false;
$.ajax({
type: "GET",
async: false,
url: url,
crossDomain: true,
dataType: "script",
success: function () {
res = true;
},
error: function () {
res = error;
},
complete: function () {
}
});
return res; //It is always return false
}
Run Code Online (Sandbox Code Playgroud)
我想返回值"true/error"
请帮我.
Exp*_*lls 10
你不能这样做.这不是ajax的工作方式.您不能依赖于在任何给定时间完成的ajax请求......或者永远不会完成.您需要做的任何基于ajax请求的工作必须在ajax回调中完成.
jQuery使绑定回调变得容易(因为jqXHRjQuery的ajax方法实现了Deferred返回):
var jqXHR = $.ajax({/* snip */});
/* millions of lines of code */
jqXHR.done(function () {
console.log('true');
}).fail(function () {
console.log('false');
});
Run Code Online (Sandbox Code Playgroud)
如果设置async为false,则可以执行您想要执行的操作,但在请求运行时会锁定浏览器.不要这样做.那你就是jax.
编辑:你不能结合crossDomain: true和async: false.跨域必须是异步的.