在浏览器开发者工具(F12)中捕获所有返回 302 重定向 请求的发起位置,可以通过以下步骤实现:
方法 1:使用 Network 面板过滤并追踪
打开开发者工具
- 按
F12
或右键选择“检查” → 切换到 Network(网络)面板。
- 按
启用持久化记录
- 勾选 ✅ Preserve log(保留日志),确保页面跳转后请求记录不被清空。
过滤 302 请求
- 在筛选框输入
status-code:302
,仅显示状态码为 302 的请求。
- 在筛选框输入
查看请求详情
- 点击任意一条 302 请求 → 在 Headers 标签页中查看:
- Request URL: 被重定向的原始 URL。
- Location: 重定向目标 URL。
- Initiator: (关键)显示发起该请求的代码位置(如 JS 文件、HTML 表单等)。
- 点击任意一条 302 请求 → 在 Headers 标签页中查看:
追踪调用栈
- 如果 Initiator 显示为 JavaScript,点击文件名链接可跳转到源码位置,查看调用栈(Call Stack)。
方法2:使用全局监听(JavaScript)
如果是前端代码触发的重定向(如 window.location
),可通过以下代码监听:
// Monkey Patch:劫持 window.location.replace/href
const originalReplace = window.location.replace;
window.location.replace = function(url) {
console.trace("302 Redirect triggered by replace:", url);
originalReplace.call(window.location, url);
};
const originalHref = Object.getOwnPropertyDescriptor(window.location, 'href').set;
Object.defineProperty(window.location, 'href', {
set: function(url) {
console.trace("302 Redirect triggered by href:", url);
originalHref.call(window.location, url);
}
});
- 输出结果:在 Console 面板会打印重定向的调用堆栈。
方法3:后端日志配合
如果重定向由后端触发(如 HTTP Response Header Location
),需结合后端日志:
- 检查服务器日志(如 Nginx/Apache/应用框架日志),匹配含
302
状态的请求路径和来源 IP/Referer。
注意事项
- AJAX/Fetch API发起的重定向可能不会直接显示在前端,需检查响应头中的
Location
。 - CORS限制可能导致无法获取跨域请求的完整信息。
通过以上方法,可以准确定位到触发302重定向的前端或后端代码位置。
内容由零声教学AI助手提供,问题来源于学员提问