完成所有请求人员后执行AJAX done()

时间:2016-07-12 13:45:40

标签: javascript jquery ajax

我有一个AJAX请求让用户从列表中删除一些数据。当ajax完成时,我调用另一个ajax请求,因此列表更新了新的数据列表。 AJAX请求删除数据:

$.ajax({
    method: "DELETE",
    url: urlRequest,
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
}).done(function() {
    console.log('removed');                          
    // the follow function call an ajax with get request so as the list will be updated with the new one
    ajaxRequestToGetNewData();    
}).fail(function() {
    console.log('fail');
})

上面的删除请求有很多要删除的信息,一些文本和一些图像,我担心如果在服务器完成所有这些操作之前调用ajaxRequestToGetNewData()

我的问题:对于上述情况,.done()方法是否安全?如果没有,是否还有其他jQuery方法只有在请求完成所有内容时才会执行?

1 个答案:

答案 0 :(得分:1)

是的,它完全安全。

done()方法返回的promise已经解决之前,不会调用$.ajax处理程序,这只会在服务器完成处理并返回200 OK响应后才会发生。如果收到任何其他响应,则fail()处理程序将执行。

在这两种情况下,服务器处理都将在客户端收到响应之前停止。