如何在 jQuery ajaxComplete 中忽略查询字符串匹配 URL

酷雪大大_3834

酷雪大大_3834

2026-04-11

927人浏览

原创

本文介绍在使用 jQuery 的 ajaxComplete 事件时,如何正确匹配带动态查询参数(如 ?_=1324346569)的 URL,避免因查询字符串导致匹配失败,核心是采用子字符串包含判断而非全等匹配。

本文介绍在使用 jquery 的 ajaxcomplete 事件时,如何正确匹配带动态查询参数(如 `?_=1324346569`)的 url,避免因查询字符串导致匹配失败,核心是采用子字符串包含判断而非全等匹配。

在实际前端开发中,尤其是 Shopify 等平台的定制场景下,常需监听 /cart.js 等关键资源的 AJAX 加载完成事件。但浏览器或 jQuery 自动添加的时间戳类查询参数(如 ?_=1682345678901)会导致严格相等比较 settings.url === "/cart.js" 永远为 false,从而无法触发预期逻辑。

正确的做法是使用字符串包含检测(.includes()),它能可靠识别 URL 路径部分是否以目标路径开头,而忽略后续查询参数:

jQuery 1.12.4
jQuery 1.12.4

jQuery 1.12.4是jQuery 1.x系列的最后一个正式稳定版本,由jQuery团队于2016年发布。该版本主要面向需要兼容旧版浏览器环境的网站和Web应用,尤其适用于仍需支持Internet Explorer 6、Internet Explorer 7、Internet Explorer 8等老旧浏览器的项目。

下载
$(document).ajaxComplete(function(event, xhr, settings) {
    if (settings.url.includes("/cart.js")) {
        console.log("✅ 成功捕获 cart.js 请求(支持任意查询参数)");
        // 在此处执行更新购物车 UI、刷新数量 badge 等操作
    }
});

⚠️ 注意事项:

  • .includes() 是 ES6+ 方法,现代浏览器均支持;若需兼容 IE,可改用 settings.url.indexOf("/cart.js") !== -1;
  • 避免使用正则或 new URL() 解析(如 new URL(settings.url).pathname === "/cart.js"),因 settings.url 可能为相对路径或不合法 URL 字符串,引发异常;
  • 若存在多个相似路径(如 /cart.js 和 /cart-items.js),建议使用更精确的匹配方式,例如:
    const path = settings.url.split('?')[0]; // 提取路径部分(不含 query)
    if (path === "/cart.js") { /* 安全精准匹配 */ }

总结:ajaxComplete 中 URL 匹配应面向“路径语义”而非“完整字符串”。使用 includes() 或路径截断法,既简洁又健壮,是处理动态查询参数的标准实践。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

jquery ajax

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
ajax教程
ajax教程

php中文网为大家带来ajax教程合集,Ajax是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。php中文网还为大家带来ajax的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2023.06.14

3000

4

ajax中文乱码解决方法
ajax中文乱码解决方法

ajax中文乱码解决方法有设置请求头部的字符编码、在服务器端设置响应头部的字符编码和使用encodeURIComponent对中文进行编码。本专题为大家提供ajax中文乱码相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.31

360

5

ajax传递中文乱码怎么办
ajax传递中文乱码怎么办

ajax传递中文乱码的解决办法:1、设置统一的编码方式;2、服务器端编码;3、客户端解码;4、设置HTTP响应头;5、使用JSON格式。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.11.15

2813

5

ajax网站有哪些
ajax网站有哪些

使用ajax的网站有谷歌、维基百科、脸书、纽约时报、亚马逊、stackoverflow、twitter、hacker news、shopify和basecamp等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.09.24

1161

6

js正则表达式
js正则表达式

php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

2023.06.20

4456

8

正则表达式不包含
正则表达式不包含

正则表达式,又称规则表达式,,是一种文本模式,包括普通字符和特殊字符,是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串,通常被用来检索、替换那些符合某个模式的文本。php中文网给大家带来了有关正则表达式的相关教程以及文章,希望对大家能有所帮助。

2023.07.05

2961

4

java正则表达式语法
java正则表达式语法

java正则表达式语法是一种模式匹配工具,它非常有用,可以在处理文本和字符串时快速地查找、替换、验证和提取特定的模式和数据。本专题提供java正则表达式语法的相关文章、下载和专题,供大家免费下载体验。

2023.07.05

8202

9

java正则表达式匹配字符串
java正则表达式匹配字符串

在Java中,我们可以使用正则表达式来匹配字符串。本专题为大家带来java正则表达式匹配字符串的相关内容,帮助大家解决问题。

2023.08.11

812

5

正则表达式空格
正则表达式空格

正则表达式空格可以用“\s”来表示,它是一个特殊的元字符,用于匹配任意空白字符,包括空格、制表符、换行符等。本专题为大家提供正则表达式相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.31

520

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
jQuery官方API文档
jQuery官方API文档

共0课时 | 0人学习

jQuery 教程
jQuery 教程

共42课时 | 16.5万人学习

HTML+CSS基础与实战
HTML+CSS基础与实战

共132课时 | 19.3万人学习