我有一个需要登录的服务器端功能.如果用户已登录,则该功能将在成功时返回1.如果没有,该函数将返回登录页面.
我想使用Ajax和jQuery调用该函数.我所做的是使用普通链接提交请求,并在其上应用单击功能.如果用户未登录或函数失败,我希望Ajax调用返回true,以便href触发.
但是,当我使用以下代码时,该函数在Ajax调用完成之前退出.
如何将用户正常重定向到登录页面?
$(".my_link").click(
function(){
$.ajax({
url: $(this).attr('href'),
type: 'GET',
cache: false,
timeout: 30000,
error: function(){
return true;
},
success: function(msg){
if (parseFloat(msg)){
return false;
} else {
return true;
}
}
});
});
Run Code Online (Sandbox Code Playgroud) 如何从$.ajax函数内部返回值?
这是我的基本设置:
function something(){
var id = 0;
$.ajax({
'url':'/some/url',
'type':'GET',
'data':{'some':'data'},
'success':function(data){
id = data['id'];
}
});
return id;
}
Run Code Online (Sandbox Code Playgroud) 我正在使用jQuery 1.7并且我async:false用于我的AJAX requets,但我已经知道这个函数已被弃用.
我需要使用回调,但这不起作用:
$("#form").submit(function(e) {
var cnf;
$.ajax({
type: "POST",
url: 'page.php',
data: $('#form').serialize(),
async: true,
success: function(responseText) {
if(responseText.indexOf('err') != -1) {
cnf = "error";
}
else {
cnf = "success";
}
return callBack( cnf );
},
error: function() {
cnf = "error";
return callBack( cnf );
}
});
if(cnf == "success")
{
alert('ok');
}
});
Run Code Online (Sandbox Code Playgroud)
HTML:
<form id="form">
<input type="text" name="email">
<input type="submit">
</form>
Run Code Online (Sandbox Code Playgroud)
如果我用async: false这个作品.使用callBack我在这里看到解决方案:等待来自调用函数的jquery ajax回调