Enable CORS
Enabling CORS is required if you want to allow serving HTTP request to external clients. For example, if you want to expose an API to some consumers: JS libraries, headless clients, and so on.
To enable CORS, you can use the with-cors
middleware in two different ways.
You can simply call it in your handler:
import withCors from '~/core/middleware/with-cors';function apiHandler( req: NextApiRequest, res: NextApiResponse) { withCors(res); // your logic}export default apiHandler;
Alternatively, you can use it with withPipe
:
import withCors from '~/core/middleware/with-cors';function handler( req: NextApiRequest, res: NextApiResponse) { // your logic}export default withPipe( withCors, apiHandler);
Additionally, you need to respond to OPTIONS
request appropriately.
export function handler( req: NextApiRequest, res: NextApiResponse) { withCors(res); if (req.method === `OPTIONS`) { // add the method you want to allow res.setHeader('Access-Control-Allow-Methods', 'GET'); return res.end(); }}