Ajax .done函数在Laravel项目成功之前执行

时间:2016-08-30 11:49:27

标签: ajax laravel

来自已完成功能的警报正在成功之前执行。请帮我。我在这做错了什么:

function load_organization()
{
    return $.ajax({
        url: '/partials/structure',
        method: "GET", 
        data: {id:id},
        success: function (data) {
            $(data.organizations).each(function(index, organization) {
                $("#organization").append(new Option(organization));
            });
        }
    });
}

$(document).ready(function(){
    load_organization().done(function(){
        alert('Success');
    });
});

2 个答案:

答案 0 :(得分:0)

“完成”是使用jQuery从正在运行的XHR实例触发的回调。

医生说:

jqXHR.done(function(data,textStatus,jqXHR){}); 成功回调选项的替代构造,请参阅deferred.done()以获取实现细节。

看看:

function load_organization()
{
    $.ajax({
        url: '/partials/structure',
        method: "GET", 
        data: {id:id},
        success: function (data) {
            $(data.organizations).each(function(index, organization) {
                $("#organization").append(new Option(organization));
            });
        }
    })
    // Use done here -> look official API doc for some explanations: http://api.jquery.com/jQuery.ajax/
    .done(function(){
        alert('Success');
    });
}

$(document).ready(function(){
    load_organization();
});

希望这可以帮助您解决问题

答案 1 :(得分:0)

调用load_organization()时正在执行alert('Success');。因此无论ajax如何,都会显示消息。您可以在同一个功能中提醒成功。 .done()只有一个回调,它是成功的回调。

function load_organization()
{
    return $.ajax({
        url: '/partials/structure',
        method: "GET", 
        data: {id:id},
        success: function (data) {
            $(data.organizations).each(function(index, organization) {
                $("#organization").append(new Option(organization));
                alert('Success');
            });
        }
    });
}