我有以下情况。我需要在我的ajax请求发送之后但在它完成之前发出一些事件。查看documentation我看到了大量事件:beforeSend
,complete
,error
,success
,done
,always
。但没有什么看起来像我想要的事件。
那么可以吗?
只是为了突出我想要实现的目标:
var foo = 'BAR';
$.post('serverURL', {
T: foo,
}, function(data){
//...
}, 'json');
foo = '';
所以我有一个类似的代码。它的工作方式非常好(它向服务器发送了正确的foo
,而不是在它发送后立即修改它)。它不是在ajax完成/完成/成功/失败时修改它,而是在它触发后立即修改。
我想将此修改foo = ''
置于回调中(如成功回调)。只是回答为什么我需要这样做:有些人在阅读代码时,决定通过在其他地方(在ajax之前)移动foo = ''
来“改进”它,从而引入难以发现的错误。像//不要移动它的评论没有帮助。
答案 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
}
});