我有其中多个AJAX功能的问题beforeSend
的的第二AJAX柱的前执行complete
所述的功能的第一AJAX。
我在发送之前添加到占位符的加载类适用于第一个 ajax 调用。然而,在第一个 ajax 请求完成后不久,该类将被删除,并且永远不会在第二次和进一步的调用中再次追加(记住递归调用)。
调试时发现beforeSend
是先调用了第二个ajax调用的complete
函数,后调用了第一个ajax调用的函数。这很明显,因为从第一个 ajax 调用插入页面的返回数据启动了第二个调用。
简而言之,它是混合的。有什么办法可以解决这个问题吗?
功能代码如下
function AjaxSendForm(url, placeholder, form, append) {
var data = $(form).serialize();
append = (append === undefined ? false : true); // whatever, it will evaluate to true or false only
$.ajax({
type: 'POST',
url: url,
data: data,
beforeSend: function() {
// setting a timeout
$(placeholder).addClass('loading');
},
success: function(data) {
if (append) {
$(placeholder).append(data);
} else {
$(placeholder).html(data);
}
},
error: function(xhr) { // if error occured
alert("Error occured.please try again");
$(placeholder).append(xhr.statusText + xhr.responseText);
$(placeholder).removeClass('loading');
},
complete: function() {
$(placeholder).removeClass('loading');
},
dataType: 'html'
});
}
数据包含以下 javascript/jquery 片段,它检查并启动另一个 ajax 请求。
<script type="text/javascript">//<!--
$(document).ready(function() {
$('#restart').val(-1)
$('#ajaxSubmit').click();
});
//--></script>