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

下拉框点击无响应且二次点击触发JSON.parse语法错误问题排查求助

问题排查:下拉框首次点击无响应 + 二次点击JSON解析错误

结合你给出的代码和问题现象,我来拆解一下问题的根源和对应的修复点:

1. 首次点击无响应的原因

最可能的问题是事件绑定时机不对:如果你的原始JavaScript代码没有等待DOM完全加载完成就执行了事件绑定,那么此时#myAjax元素还没被渲染到页面中,事件监听根本没挂载成功,自然首次点击没有任何响应。

你修复后的代码里添加了window.addEventListener("DOMContentLoaded", ...),就是确保在DOM完全解析完成后再绑定事件,这直接解决了首次点击无响应的问题。

2. 二次点击JSON解析错误的原因

这个错误SyntaxError: JSON.parse: unexpected character说明AJAX请求返回的内容不是合法的JSON格式,大概率是请求参数传递错误导致后端返回了非JSON内容(比如错误页面、HTML提示、空文本等)。

看你代码里的请求URL:

fetch("{$categories_ajax}?"+selectedOptionVal)

这里的参数拼接方式有问题——你直接把分类ID拼在了问号后面,没有指定参数名(比如category_id=xxx),后端无法正确识别并处理这个请求,可能返回了错误信息或者默认的HTML内容,而非预期的JSON数据,所以前端调用response.json()时会触发解析错误。

正确的参数拼接应该是指定参数名,比如:

fetch(`${categories_ajax}?category_id=${selectedOptionVal}`)

同时要确保后端接口products_categories.php能正确接收这个参数,并返回格式合法的JSON字符串(比如要确保没有输出多余的HTML、空格或报错信息)。

额外验证点

  • 可以在浏览器开发者工具的「网络」标签下,查看第二次点击时的AJAX请求,看看响应内容到底是什么:如果是HTML或错误文本,那就能确认是后端返回的内容不符合JSON格式;
  • 检查后端代码是否在输出JSON前有多余的echo、print语句,这些都会破坏JSON格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 08:47:40