import { NextApiHandler, NextApiRequest, NextApiResponse } from "next"; import Cors from "cors"; const cors = Cors({ methods: ["GET"], origin: "*", }); // Helper method to wait for a middleware to execute before continuing // And to throw an error when an error happens in a middleware function runMiddleware(req: NextApiRequest, res: NextApiResponse, fn: Function) { return new Promise((resolve, reject) => { fn(req, res, (result: any) => { if (result instanceof Error) { return reject(result); } return resolve(result); }); }); } /** * @type {NextApiHandler} */ export default async function handler(req: NextApiRequest, res: NextApiResponse) { // res.setHeader("Access-Control-Allow-Credentials", "true"); // res.setHeader("Access-Control-Allow-Origin", "*"); // res.setHeader("Access-Control-Allow-Methods", "*"); // res.setHeader("Access-Control-Allow-Headers", "*"); res.setHeader("Access-Control-Allow-Credentials", "true"); res.setHeader("Access-Control-Allow-Origin", "*"); // another common pattern // res.setHeader('Access-Control-Allow-Origin', req.headers.origin); res.setHeader("Access-Control-Allow-Methods", "GET,OPTIONS,PATCH,DELETE,POST,PUT"); res.setHeader("Access-Control-Allow-Headers", "X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Api-Version"); // await runMiddleware(req, res, cors); res.json({ title: "Hello There", message: "General Kenobi", }); }