Linux定时任务正确触发含前端AJAX导出接口的方法
本文深入解析为何使用 wget 在 Cron 定时任务中访问包含 jQuery AJAX 的页面会执行失败(返回 403 或实际未触发),并提供可靠的替代方案——利用无头浏览器模拟真实浏览器行为,确保后端导出逻辑完整执行。
先抛个实际问题:你用 wget 在 Cron 里调用某个页面,返回 200 但 Excel 文件就是没生成?别急着怀疑后端代码,问题很可能出在前端那层“障眼法”上。
本文将详细剖析 wget 在 Cron 任务中调用含 jQuery AJAX 页面的失败原因(返回 403 或无实际执行),并给出可靠的解决方案——使用无头浏览器模拟真实用户行为,确保后端导出逻辑被完整触发。
问题根源在于:wget 是纯 HTTP 客户端,不解析、不执行 JavaScript。你当前配置的 /cron/export-all-files 页面本身并不触发任何服务器端逻辑,它只是通过前端 jQuery 发起一次 POST 请求到 /sales/invoice-list/export。当 wget 访问该页面时,只会下载那几行 HTML 源码(也就是包裹着

