【发布时间】:2014-03-19 05:03:41
【问题描述】:
我有以下情况。我需要在我的 ajax 请求发送后但在它完成之前触发一些事件。看着documentation,我看到了一大堆事件:beforeSend、complete、error、success、done、always。但是没有什么看起来像我想要的事件。
那么有可能吗?
只是为了强调我到底想要实现什么:
var foo = 'BAR';
$.post('serverURL', {
T: foo,
}, function(data){
//...
}, 'json');
foo = '';
所以我有一个类似的代码。而且它的工作方式非常好(它将正确的foo 发送到服务器,而不是在发送它之后立即对其进行修改)。它不会在 ajax 完成/完成/成功/失败时修改它,而是在它触发后立即修改它。
我想将此修改 foo = '' 放入回调中(如成功回调)。只是为了回答我为什么需要这样做:有些人在阅读代码时,决定通过将foo = '' 移动到其他地方(在ajax 之前)来“改进”它,从而引入了难以发现的错误。像 // 不要移动它这样的评论没有帮助。
【问题讨论】:
-
some event是什么? -
@Salvador Dali 请参阅“示例:链任务”中的api.jquery.com/deferred.then 希望这会有所帮助
-
@Pilot 任何功能。您可以放入
success或done的内容。我知道我可以在 ajax 调用之后直接放它,但是还有别的吗? -
@guest271314 谢谢,但延迟是在 ajax 完成后发生的事情。
-
@Pilot beforeSend 在 ajax 发送之前被调用。