在jquery 3.11版本中,$.ajaxStart()无法被触发
主要原因有两种:
- 全局的AJAX事件(ajaxStart, ajaxStop, ajaxSend, ajaxComplete, ajaxError, and ajaxSuccess) 只能在document元素上触发。修改AJAX事件监听程序到document元素上。例如,如果目前的代码看起来像这样:
$(“#status”).ajaxStart(function(){ $(this).text(“Ajax started”); });
修改成这样:
$(document).ajaxStart(function(){ $(“#status”).text(“Ajax started”); });
2.ajaxStart是一种全局的配置,是jQuery中对ajax请求的一种全局拦截配置。。通常用来侦测页面中异步请求的发送/结束.
需要提前进行配置:
$(function () {
$("#onload").hide();
//调用在document 提前配置 检测ajax 状态
$(document).ajaxStart(function () {
$("#onload").show();
});
$(document).ajaxStop(function () {
$("#onload").hide();
});
$("#send").click(function () {
$.ajax(
{
type:"POST",
url:"http://xiaocai.com/ajax/post1.php",
datatype:"php",
success:function (data) {
alert(data);
},
error: function (xml,status,error) {
console.log(error);
},
global:true
}
);
});
});