You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何我的ajaxStart、ajaxStop及error函数无法正常工作?

AjaxStart/AjaxStop 不触发的问题解决
  • 核心问题:你只绑定了Ajax全局事件,但没有发起任何Ajax请求,这些事件自然不会被触发。
  • 代码里的额外问题:
    • $loading已经是jQuery对象,不需要再用$($loading)重复包装,直接用$loading.show()/$loading.hide()即可。
    • ajaxError的参数写法错误,正确的参数顺序是event, jqXHR, settings, thrownError,判断超时应该通过jqXHR.statusText来判断。

以下是修正后的完整代码,包含一个测试用的Ajax请求:

<body>
<div id="loading">
    <img src="loading.gif" alt="" width="100px" height="100px">
</div>
<div id="divResult"></div>
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
<script>
    $(document).ready(() => {
        var $loading = $('#loading').hide();
        $(document).ajaxStart(function () {
            $loading.show();
        });
        $(document).ajaxStop(function () {
            $loading.hide();
            alert('All ajax requests completed');
        });
        $(document).ajaxError(function (event, jqXHR, settings, thrownError) {
            if (jqXHR.statusText === 'timeout') {
                alert('timeout');
            }
        });

        // 添加测试用Ajax请求,触发全局事件
        $.ajax({
            url: 'your-api-url', // 替换为实际接口地址
            timeout: 5000,
            success: function(data) {
                $('#divResult').html(JSON.stringify(data));
            }
        });
    });
</script>
</body>

注意:确保你已经正确引入jQuery库(代码中补充了CDN引入,可替换为本地资源),jQuery 3.x及以上版本均支持这些全局Ajax事件。

内容的提问来源于stack exchange,提问作者user22934804

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 03:25:11