事件发出后但在完成之前发生火灾事件

时间:2014-03-19 05:03:42

标签: jquery ajax

我有以下情况。我需要在我的ajax请求发送之后但在它完成之前发出一些事件。查看documentation我看到了大量事件:beforeSendcompleteerrorsuccessdonealways 。但没有什么看起来像我想要的事件。

那么可以吗?

只是为了突出我想要实现的目标

    var foo = 'BAR';
    $.post('serverURL', {
        T: foo,
    }, function(data){
        //...
    }, 'json');

    foo = '';

所以我有一个类似的代码。它的工作方式非常好(它向服务器发送了正确的foo,而不是在它发送后立即修改它)。它不是在ajax完成/完成/成功/失败时修改它,而是在它触发后立即修改。

我想将此修改foo = ''置于回调中(如成功回调)。只是回答为什么我需要这样做:有些人在阅读代码时,决定通过在其他地方(在ajax之前)移动foo = ''来“改进”它,从而引入难以发现的错误。像//不要移动它的评论没有帮助。

2 个答案:

答案 0 :(得分:0)

存在全局jQuery ajax事件处理程序:

$(document).ajaxStart(function(){   ...    });

,在第一个Ajax请求启动时调用。

答案 1 :(得分:0)

这个怎么样?

formData = {
    param1: "param1"
}
$.ajax({
    type: 'GET',
    contentType: 'application/json',
    url: "https://example.com/detail.php",
    dataType: "json",
    data: formData,
    beforeSend: function() {
        //before handler
    },
    success: function(data) {
        //success handler
    },
    complete: function(data) {
        //complete handler
    },
    error: function(data) {
        //error handler
    }
});