When running this code on the Edge runtime, the headers I set in the middleware response.headers.set('x-foo-bar', 'foo-bar');) are missing. However, when running the same code on the NodeJS runtime, the headers appear correctly.
Is this expected behavior on the Edge runtime? If so, could you explain why this happens? Additionally, is there a fix or workaround to ensure the headers are set properly?
import { headers } from 'next/headers';
export const runtime = 'edge' // or node;
export default async function Page() {
const nextHeaders = headers();
return (
<code>
<pre>{JSON.stringify(Array.from(nextHeaders.entries()), null, 2)}</pre>
</code>
);
};