如何从开发者工具获取token并正确填入fetch POST请求
问题解决方法
你的问题出在两个核心点:
- 直接把
document.querySelector的代码写在字符串里,浏览器会把这段代码当成普通文本发送,不会执行它来获取实际的token值 - 代码本身存在语法错误(headers内缺逗号、referrer放错位置、body的字符串格式不规范)
正确的操作是先获取到token的实际值,再拼入请求体:
// 先获取meta标签里的token实际值(需读取content属性) const token = document.querySelector('meta[name="token"]')?.content; if (!token) { console.error('找不到目标token'); return; } const targetUrl = '你的实际请求URL'; // 替换为你要请求的地址 fetch(targetUrl, { headers: { 'Content-Type': 'application/x-www-form-urlencoded' // 必须添加,告知服务器请求体为表单格式 }, referrer: targetUrl, referrerPolicy: 'no-referrer-when-downgrade', body: `token=${encodeURIComponent(token)}`, // 用模板字符串插入token值,编码避免特殊字符干扰 method: 'POST', mode: 'cors', credentials: 'include' });
补充说明:
- 用
?.content可以避免找不到meta标签时直接报错 encodeURIComponent用来编码token中的特殊字符,防止请求体格式混乱- 修正了fetch配置的语法错误,将referrer从headers内移至顶级配置项
内容的提问来源于stack exchange,提问作者Faskar
相关产品推荐
相关产品推荐

