在浏览器开发者工具(F12)中捕获所有返回 302 重定向 请求的发起位置,可以通过以下步骤实现:
1. 使用 Network 面板过滤并追踪
步骤:
- 打开开发者工具 - 按 F12或右键选择“检查” → 切换到 Network(网络)面板。
 
- 按 
- 启用持久化记录 - 勾选 ✅ Preserve log(保留日志),确保页面跳转后请求记录不被清空。
 
- 过滤 302 请求 - 在筛选框输入以下条件之一:
- status-code:302
 
- status:302
 
- method:POST|GET status:302(按需组合)。
 
 
- 在筛选框输入以下条件之一:
- 分析请求详情 - 点击任意一条 302 请求 → 查看以下关键字段:
- General:
 - `Request URL`: 被重定向的原始 URL。 - `Status Code`: `302 Found` + `Location`(目标 URL)。
- Initiator: (核心字段)显示触发请求的代码位置,可能为:
- JS文件及行号(如 `app.js:123`)。 - HTML表单提交(如 `<form>`)。 - Fetch/XHR调用栈(点击可展开)。
 
- General:
 
- 点击任意一条 302 请求 → 查看以下关键字段:
- 追踪调用栈 - 若 Initiator 显示为 JavaScript,点击文件名链接跳转到源码,查看完整调用栈(Call Stack)。
 
2. XHR/Fetch API 监听
如果是通过 JavaScript(如 Fetch/AJAX)触发的重定向:
// Monkey Patch:劫持 Fetch API
const originalFetch = window.fetch;
window.fetch = async function(...args) {
    const response = await originalFetch(...args);
    if (response.redirected || response.status === 302) {
        console.trace("Redirect detected:", args[0], "→", response.url);
    }
    return response;
};
// Monkey Patch:劫持 XMLHttpRequest
const originalOpen = XMLHttpRequest.prototype.open;
XMLHttpRequest.prototype.open = function(method, url) {
    this.addEventListener('readystatechange', function() {
        if (this.readyState === XMLHttpRequest.DONE && 
            (this.status === 302 || this.responseURL !== url)) {
            console.trace("XHR Redirect:", url, "→", this.responseURL);
        }
    });
    originalOpen.apply(this, arguments);
};
- 效果: Console面板会打印所有通过代码触发的重定向及其调用栈。
3. DOM/全局事件监听
如果是用户交互触发的重定向(如点击链接、表单提交):
// 监听所有 <a> 标签点击
document.querySelectorAll('a').forEach(link => {
    link.addEventListener('click', (e) => {
        if (e.target.href && !e.defaultPrevented) { 
            console.trace("Link redirect:", e.target.href); 
        }
    });
});
// 监听表单提交
document.querySelectorAll('form').forEach(form => {
    form.addEventListener('submit', (e) => { 
        console.trace("Form redirect:", e.target.action); 
    });
});
4. Chrome扩展增强
安装插件 Redirect Path,可直接可视化所有重定向链及发起源。
注意事项
- 跨域限制: CORS可能导致无法获取完整的响应头信息。
 
- 服务端渲染: SSR框架(如Next.js)的重定向可能在Network面板中不可见,需检查服务端日志。
 
通过以上方法,可以覆盖99%的前端或后端触发的302重定向定位需求。
内容由零声教学AI助手提供,问题来源于学员提问


 
                             
         
        
 
         
         
         
         
         
         
         
        
 
                 
                 
                 
                 
                 
                 
                 
                