如何阻止ajax请求产生的404错误显示在浏览器控制台中
问题描述
需要在页面加载时加载指定文件夹下的JSON文件,每个JSON对应一个页面,作为应用后续构建的基础配置,脚本需要适配任意数量的JSON文件。
当前递归实现可以按序号依次加载对应JSON,请求出错时启动应用初始化流程,逻辑运行符合预期,但浏览器控制台会打印404错误。需要实现捕获标识无更多JSON文件可加载的404错误,同时避免该错误显示在浏览器控制台中。
现有实现代码
$(document).ready(function() { let pageArray = []; loadPages(1, pageArray); function loadPages(nb, array) { $.ajax({ url: 'configuration/pages/page' + nb + '.json', dataType: 'json', error: function() { initialize(array); }, success: function(data) { array.push(data); loadPages(nb + 1, array); } }); } function initialize(pages) { console.log(pages); } });
核心说明
- 浏览器对于返回404状态码的HTTP请求,默认会在控制台打印错误日志,这是浏览器的内置行为,前端JavaScript层没有任何方案可以阻止该日志输出,不管使用jQuery ajax、原生XMLHttpRequest还是fetch API,都无法覆盖这个默认逻辑。
- 要彻底避免该404错误日志,核心是不要发出最终会返回404的无效请求,有两种可行方案:
- 服务端聚合返回配置:即你最终采用的Django实现方案,由服务端遍历配置目录,把所有符合要求的JSON配置一次性打包返回给前端,从根源上避免了多余的无效请求,是生产环境最推荐的实现方式。
- 服务端新增配置计数接口:服务端先提供接口返回当前目录下的配置文件总数量,前端拿到总数后,只发起对应数量的加载请求,也不会产生多余的404请求。
补充说明
我最终采用服务端Python(基于Django框架)处理配置文件,由Python遍历目录后将所有页面数据返回给客户端。该方案没有直接解决前端阻止404报错的问题,但属于更推荐的最优实践。
内容的提问来源于stack exchange,提问作者BFlat
相关产品推荐
相关产品推荐

