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

如何在$.ajaxSetup的Ajax拦截器中获取请求URL

针对特定Ajax请求跳过加载器显示的解决方案

嘿,这个需求很好实现!你只需要在beforeSend和complete的回调里拿到请求的URL,做个简单判断,就能跳过graph.facebook.com相关请求的加载器显示啦。

原来的beforeSend和complete回调其实还有第二个参数settings,它包含了当前Ajax请求的所有配置信息,其中settings.url就是本次请求的完整地址。我们可以利用这个属性来做判断:

$.ajaxSetup({
    beforeSend: function (xhr, settings) {
        // 只在请求不是指向graph.facebook.com时显示加载器
        if (!settings.url.startsWith('http://graph.facebook.com')) {
            $('#loader').removeClass('display-none');
        }
    },
    complete: function(xhr, status, settings){
        // 同样,只有非facebook的请求完成后才隐藏加载器
        if (!settings.url.startsWith('http://graph.facebook.com')) {
            $('#loader').addClass('display-none');
        }
    }
});

小提示:

  • 如果需要兼容一些不支持startsWith的老旧浏览器,可以换成indexOf的写法:settings.url.indexOf('http://graph.facebook.com') === 0
  • 记得在complete里也加上判断,避免facebook的请求完成后,不小心修改了加载器的状态,导致显示异常。

这样就完美实现你的需求啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:53:30