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

为何navigator.sendBeacon()不遵循PHP返回的Refresh头重定向规则?

sendBeacon对Refresh跳转头的支持说明

结论

不存在任何可额外添加的响应内容,能让navigator.sendBeacon()识别并遵循Refresh头的跳转规则。

原因解释

  • navigator.sendBeacon()的底层请求逻辑遵循Fetch规范的重定向处理规则,仅支持标准HTTP 3xx状态码搭配Location响应头的重定向形式,从规范层面就没有设计对Refresh头的解析处理逻辑。
  • Refresh本身不属于HTTP标准定义的重定向机制,它是早期浏览器推出的非标准扩展,设计初衷是控制浏览器渲染完页面后,等待指定时长再做整个页面的跳转,原本就不适用于sendBeacon这类后台静默请求场景。

替代实现方案

如果需要让sendBeacon正常遵循重定向,直接使用标准的3xx状态码+Location头的实现即可,PHP示例代码如下:

// 可根据业务需求将302替换为301/303/307/308等符合要求的重定向状态码
header('Location: https://destination.url', true, 302);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 21:06:02