相关疑难解决方法(0)

如何使jQuery在返回之前等待Ajax调用完成?

我有一个需要登录的服务器端功能.如果用户已登录,则该功能将在成功时返回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 jquery

230
推荐指数
8
解决办法
34万
查看次数

返回$ .ajax()函数内部的值

如何从$.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)

ajax jquery

10
推荐指数
2
解决办法
9585
查看次数

Ajax async false已弃用?

我正在使用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回调

javascript ajax jquery asynchronous

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

ajax ×3

jquery ×3

asynchronous ×1

javascript ×1