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

使用ajaxComplete时忽略Query String,如何捕获/cart.js请求?

解决ajaxComplete匹配带Query String的/cart.js问题

当前代码通过严格相等判断settings.url === "/cart.js",但实际请求的URL会带有随机Query参数(比如/cart.js?_=1324346569),导致匹配失败。可以用以下几种方法忽略Query参数,只匹配路径部分:

  • 方法一:使用字符串startsWith方法
    直接检查URL是否以目标路径开头,简单高效:

    $(document).ajaxComplete(function(event, xhr, settings) {
        if (settings.url.startsWith("/cart.js")) {
            console.log('捕获到cart.js请求(忽略Query参数)');
        }
    });
    
  • 方法二:使用URL对象解析路径
    借助浏览器原生的URL对象解析URL,提取路径部分进行匹配,逻辑更严谨:

    $(document).ajaxComplete(function(event, xhr, settings) {
        const urlObj = new URL(settings.url, window.location.origin);
        if (urlObj.pathname === "/cart.js") {
            console.log('捕获到cart.js请求(忽略Query参数)');
        }
    });
    
  • 方法三:使用正则表达式匹配
    通过正则表达式匹配以/cart.js开头的URL,支持带或不带Query参数的情况:

    $(document).ajaxComplete(function(event, xhr, settings) {
        if (/^\/cart\.js(\?.*)?$/.test(settings.url)) {
            console.log('捕获到cart.js请求(忽略Query参数)');
        }
    });
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 22:57:06