Javascript 根据AJAX响应使函数返回false
我有一个从另一个函数中调用的函数Javascript 根据AJAX响应使函数返回false,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一个从另一个函数中调用的函数 function CheckForSession() { var str="chksession=true"; jQuery.ajax({ type: "POST", url: "chk_session.php", data: str, cache: false, suc
function CheckForSession() {
var str="chksession=true";
jQuery.ajax({
type: "POST",
url: "chk_session.php",
data: str,
cache: false,
success: function(res){
if(res == "0") {
alert('Your session has been expired!');
}
}
});
}
如果响应等于0,如何使整个函数CheckForSession返回false
另外,在我的应用程序中,对该函数的响应只能是1或0。由于AJAX请求的异步性质,您不能这样做 您的最佳解决方案是使用: 默认情况下,
jQuery.ajax
返回promise对象,当ajax请求完成时,我就被解析了。然后,您可以根据结果编写操作
由于AJAX请求的异步性质,您不能这样做 您的最佳解决方案是使用: 默认情况下,
jQuery.ajax
返回promise对象,当ajax请求完成时,我就被解析了。然后,您可以根据结果编写操作
你不能,因为jQuery.ajax是异步的。。。人们会告诉您设置
async:false
——但最好是学习如何编写正确使用异步行为的代码。您应该使用本机http状态代码。返回的任何错误都将使jquery触发错误事件,您可以在其中处理403。检查应用程序中的任何ajax请求应该是标准做法<代码>标题(“HTTP/1.0 403未经授权”)代码>您可以将回调fn传递给CheckForSession,在ajax的成功/错误中,您可以决定调用还是不调用,因为jQuery.ajax是异步的。。。人们会告诉您设置async:false
——但最好是学习如何编写正确使用异步行为的代码。您应该使用本机http状态代码。返回的任何错误都将使jquery触发错误事件,您可以在其中处理403。检查应用程序中的任何ajax请求应该是标准做法<代码>标题(“HTTP/1.0 403未经授权”)代码>您可以将回调fn传递给CheckForSession,在ajax的成功/错误中,您可以决定调用还是不调用
function CheckForSession() {
var str="chksession=true";
return jQuery.ajax({
type: "POST",
url: "chk_session.php",
data: str,
cache: false,
success: function(res){
blabla = res;
if(res == "0") {
alert('Your session has been expired!');
}
}
});
}
CheckForSession().then(function(data) {
// successful
}, function() {
// error
})