百度浏览器验证码图片空白是因激进缓存策略将动态验证码误作静态资源复用;可通过开发者工具network标签查状态码(304或空响应即确认缓存问题),再用时间戳参数或控制台脚本强制刷新,或通过清除缓存、安装cache killer插件、禁用network service永久解决。

百度浏览器访问含验证码的网页时,图片区域一片空白或显示“加载失败”,但同一网址在火狐中能正常加载并刷新——这大概率是百度浏览器对动态资源的缓存策略过于激进,把验证码这种本该每次请求都更新的图片当成了静态资源直接复用缓存。
确认是否为缓存导致的验证码不显示
按 F12 打开开发者工具 → 切换到 Network 标签 → 刷新页面 → 找到验证码图片对应的请求(通常 URL 含 captcha、verify、code 等关键词)→ 查看其 Status 是否为 200(成功)还是 304(未修改,走缓存)或直接无响应。若状态码是 304 或 Response 内容为空,则基本锁定是缓存问题。
这一步必须做,否则后续所有操作都是盲调。
强制绕过缓存加载验证码(推荐)
方法一:手动添加时间戳参数
在验证码图片的 src 属性末尾追加 ?t= + 当前毫秒时间戳。例如原地址是 /api/captcha,改成 /api/captcha?t=1727853429882。实际操作中,可右键图片 → “检查元素” → 双击编辑 src 值,即时生效。
方法二:用控制台注入脚本自动修复(适用于页面已加载但验证码卡住)
在开发者工具 Console 中粘贴执行以下代码:
document.querySelectorAll('img[src*="captcha"], img[src*="verify"], img[src*="code"]').forEach(img => { img.src = img.src.split('?')[0] + '?t=' + Date.now(); });
执行后,所有匹配的验证码图片会立即重新请求,避开缓存。
永久禁用百度浏览器对验证码类资源的缓存
第一步:在地址栏输入 chrome://settings/clearBrowserData(百度浏览器内核同 Chromium,此路径有效)→ 勾选“缓存的图片和文件”→ 点击“清除数据”。
第二步:安装插件 Cache Killer(Chrome 应用商店可搜到,百度浏览器扩展中心同步可用)→ 开启开关 → 此后所有新标签页默认跳过缓存加载资源。
第三步:进入 chrome://flags/ → 搜索 network service → 将 Network Service 设为 Disabled → 重启浏览器。【此举会关闭底层网络服务缓存模块,对验证码类短时效资源最有效】











