Next.js Middleware中访问request.headers报错问题求助
Next.js Middleware 中 request.headers 访问问题解决
直接打印 request.headers 报错原因
Next.js Middleware 里的request.headers是标准 Web API 的Headers对象,并非普通 JS 对象。直接用console.log打印时,会触发内部属性序列化逻辑,其中Symbol(set-cookie)属性不可删除,因此抛出TypeError。正确打印 headers 的方式
需要把Headers对象转换成可打印的格式,比如数组或普通对象:// 转为数组打印 console.log(Array.from(request.headers.entries())); // 转为普通对象打印 console.log(Object.fromEntries(request.headers.entries()));获取 referer 头的正确方法
不能直接通过属性访问(request.headers.referer),必须使用Headers对象的get()方法,HTTP 头名称不区分大小写:console.log(request.headers.get('referer')); // 部分场景可使用标准拼写 'referrer' console.log(request.headers.get('referrer'));修正后的完整中间件代码
export function middleware(request) { console.log(request.credentials); // 正常输出 same-origin console.log(request.method); // 正常输出 GET // 正确打印 headers console.log(Object.fromEntries(request.headers.entries())); // 正确获取 referer console.log(request.headers.get('referer')); } export const config = { matcher: "/:path*/generate", };
内容的提问来源于stack exchange,提问作者Kuli Uploader
相关产品推荐
相关产品推荐

