我有一个函数,在用户添加编辑数据之前,通过ajax调用检查是否存在cookie会话 问题是,调用返回值的时间太长,所以它总是返回:undefined 有没有办法运行这个功能,以便及时返回数据?谢谢你的阅读。
function checkSession(){
$.get('/check_session.php',function(data){
if(data == "loggedOut"){
return "lo";
}
}
function doSomething(){ //check if your logged in
if(checkSession() == "lo"){ //always returns:undefined
alert('your have been logged out');
}else{ //do stuff
}
}
答案 0 :(得分:0)
1.服务器的响应时间不是问题。您已将return
语句置于回调函数下,该函数将在$.get
完成后异步调用,因此基本上checkSession()
将永远不会返回您的预期值。
2.您有一些选项可以解决您的问题:使用$.deferred
或将您的ajax方法转换为同步调用。我亲自选择第二个。
function checkSession(){
return $.ajax({
type: "GET",
url: YOUR_URL,
async: false
}).responseText == "loggedOut" ? "lo" : "something";
}