MS Edge下AJAX请求返回无关JS代码的异常问题排查求助
针对Edge部分用户AJAX返回错误JS内容的排查思路
问题回顾
仅在MS Edge浏览器的部分客户用户中出现:发起AJAX请求时,theData变量未获取到预期的服务器JSON响应,而是存储了无关的.js文件源代码,导致后续代码执行失败。相关代码如下:
console.log("Calling: " + api); $.ajax({ url: api, cache: true, error: function (XMLHttpRequest, textStatus, errorThrown) { displayExceptionNotification("Error on call to " + api + ": " + errorThrown); } }).then(function (theData) { // Use the server response }
排查步骤
优先排查缓存问题
代码中设置了cache: true,Edge的缓存机制可能在特定用户环境中出现异常,将旧静态JS资源缓存误作为API响应返回。可以:- 临时修改AJAX配置,将
cache设为false,或在API URL后追加时间戳参数(如api + '?t=' + Date.now()),让用户测试是否恢复正常; - 指导用户手动清除Edge缓存(设置→隐私、搜索和服务→清除浏览数据,勾选「缓存的图像和文件」)后重试。
- 临时修改AJAX配置,将
分析请求与响应细节
让用户在Edge调试工具的「网络」面板中定位该AJAX请求,检查:- 实际请求URL是否正确,是否被扩展、代理篡改;
- 响应头的
Content-Type是否为application/json,若返回application/javascript,说明服务器/CDN路由错误,返回了静态资源; - 响应内容的具体来源,确认是否为某个静态JS文件被错误映射到API路径。
排除浏览器扩展与代理干扰
部分用户的Edge扩展(如广告拦截、脚本注入工具)或公司内部代理可能劫持请求,返回错误内容:- 让用户切换到无痕模式测试(无痕模式默认禁用扩展),若问题消失,逐个排查已安装的扩展;
- 若无痕模式仍有问题,检查用户的代理设置,尝试关闭代理后重试。
检查服务器与CDN配置
即使问题仅出现在部分用户,也可能是服务端/CDN的异常:- 确认API路径是否与静态JS文件路径冲突,导致服务器/CDN误返回静态资源;
- 查看服务器日志,分析异常请求的User-Agent、请求头等标识,是否存在特定规则导致错误响应;
- 若使用CDN,检查缓存策略是否错误地将API请求缓存为静态JS资源。
验证Edge版本兼容性
确认出现问题的用户使用的Edge版本,对比正常用户的版本。部分旧版Edge可能存在AJAX处理bug,建议用户升级到最新稳定版后测试。
内容的提问来源于stack exchange,提问作者Kit Kline
相关产品推荐
相关产品推荐

