我想根据 Next.JS 中间件中的 cookie 动态设置请求标头。但在测试时,我只在服务器端调用上看到自定义标头,而在客户端 API 调用上看不到。中间件不是在客户端调用上运行吗?
我尝试过这样设置请求标头:
//中间件.ts
import { NextResponse } from 'next/server';
import type { NextRequest } from 'next/server';
export function middleware(request: NextRequest) {
const requestHeaders = new Headers(request.headers);
requestHeaders.set('x-currency', 'test');
const response = NextResponse.next({
request: {
headers: requestHeaders,
},
});
return response;
}
中间件运行在和服务器之间。它在客户端请求之后开始,在服务器响应之前结束。