0

我如何检查并等待服务器延迟以完成保存功能,该功能返回一个 ajax 对象 jqxhr,我想在执行其他任何操作之前检查 ajax 请求是否完成。

注意:保存功能成功,完成错误等。我想在我做任何事情之前确保它完成,这样当我使用 jqxhr.status 时我就会得到未定义。

    $(document).ready(function() { 
        $(function() {
            $("#save").click(function() {

             save().then(function(jqxhr){// check status...


                    alert(" jqxhr status " + jqxhr.status); <--getting undefined first
                    //200 for success
                    var stat = jqxhr.status;
                    //alert(" inside 200 status "+stat);
                    if (stat == 200) {
                        console.log("inside 200");

                        alert(" inside 200 status " + stat); 

                    }
                    if (stat == 400) {
                        console.log("inside 400");
                        alert(" inside 400 status " + stat);

                    } else {

                        alert(" inside 200 status " + stat);
                    }

                });

            });
        });
    });​
4

1 回答 1

0

save() 函数(实际上只是一个 ajax 调用)返回一个 promise,因此您可以使用 then() 链接您的代码:

save().then(function(jqxhr){// check status...});
于 2012-12-03T20:44:51.407 回答