Handle CORS at the edge.
Below is the code from pages/api/hello.ts
:
import { NextRequest } from 'next/server' import cors from '../../lib/cors' export const config = { runtime: 'edge', } export default async function handler(req: NextRequest) { // `cors` also takes care of handling OPTIONS requests return cors( req, new Response(JSON.stringify({ message: 'Hello World!' }), { status: 200, headers: { 'Content-Type': 'application/json' }, }) ) }
Test it out with:
curl -i -X OPTIONS -H 'origin: https://vercel.com' https://edge-functions-cors.vercel.sh/api/hello
https://edge-functions-cors.vercel.app/api/hello
You can choose from one of the following two methods to use this repository:
Deploy the example using Vercel:
Download this repository via git:
git clone https://github.com/vercel/examples.git
Execute create-next-app
with pnpm to bootstrap the example:
pnpm create next-app --example https://github.com/vercel/examples/tree/main/edge-functions/cors cors
Next, run Next.js in development mode:
pnpm dev
Deploy it to the cloud with Vercel (Documentation).
Handle CORS at the edge.
Below is the code from pages/api/hello.ts
:
import { NextRequest } from 'next/server' import cors from '../../lib/cors' export const config = { runtime: 'edge', } export default async function handler(req: NextRequest) { // `cors` also takes care of handling OPTIONS requests return cors( req, new Response(JSON.stringify({ message: 'Hello World!' }), { status: 200, headers: { 'Content-Type': 'application/json' }, }) ) }
Test it out with:
curl -i -X OPTIONS -H 'origin: https://vercel.com' https://edge-functions-cors.vercel.sh/api/hello
https://edge-functions-cors.vercel.app/api/hello
You can choose from one of the following two methods to use this repository:
Deploy the example using Vercel:
Download this repository via git:
git clone https://github.com/vercel/examples.git
Execute create-next-app
with pnpm to bootstrap the example:
pnpm create next-app --example https://github.com/vercel/examples/tree/main/edge-functions/cors cors
Next, run Next.js in development mode:
pnpm dev
Deploy it to the cloud with Vercel (Documentation).