How do you handle CORS in Next.js API routes?
Set headers in the handler: res.setHeader('Access-Control-Allow-Origin', 'https://myapp.com'); res.setHeader('Access-Control-Allow-Methods', 'GET, POST'); if (req.method === 'OPTIONS') return res.status(204).end();
Verify This Answer
Cross-check this information using these trusted sources:
More FAQs in CORS: Real-World Examples
Use the cors middleware: app.use(cors({ origin: ['https://myapp.com'], methods: ['GET', 'POST', 'PUT', 'DELETE'], credentials: true })). Or set headers manually and return 204 for OPTIONS.
In vite.config.js: server: { proxy: { '/api': { target: 'https://api.example.com', changeOrigin: true } } }. Requests to /api are proxied to the API, avoiding CORS (same-origin from the browser's perspective).
add_header Access-Control-Allow-Origin 'https://myapp.com'; add_header Access-Control-Allow-Methods 'GET, POST, PUT, DELETE'; if ($request_method = OPTIONS) { return 204; }. Add these to the location block for your API.
Still have questions?
Browse all our FAQs or reach out to our support team
