我有一个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方法只有在请求完成所有内容时才会执行?
答案 0 :(得分:1)
是的,它完全安全。
在done()
方法返回的promise已经解决之前,不会调用$.ajax
处理程序,这只会在服务器完成处理并返回200 OK
响应后才会发生。如果收到任何其他响应,则fail()
处理程序将执行。
在这两种情况下,服务器处理都将在客户端收到响应之前停止。