1 | initial version |
To configure CORS preflight in AdonisJS v5.9.0, follow these steps:
@adonisjs/cors
package using npm:npm i @adonisjs/cors@latest
start/kernel.ts
file:import corsMiddleware from '@adonisjs/cors'
...
const serverMiddleware = [
...
/*
|--------------------------------------------------------------------------
| Cross-Origin Resource Sharing (CORS)
|--------------------------------------------------------------------------
|
| Enables CORS middleware which will handle CORS for you.
| This is required when running on a different domain than the API.
|
*/
corsMiddleware({ origin: '*' }),
]
{ origin: '*' }
means that any origin is allowed. You can also restrict allowed origins to specific domains.import corsMiddleware from '@adonisjs/cors'
...
const serverMiddleware = [
...
corsMiddleware({
origin: (requestOrigin, callback) => {
if (requestOrigin && requestOrigin.startsWith('https://example.com')) {
return callback(null, true)
}
return callback(new Error('Not allowed by CORS'))
},
methods: ['GET', 'POST'],
headers: true,
exposedHeaders: [],
credentials: true,
maxAge: 90,
}),
]
fetch('https://your-api-domain.com', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Access-Control-Request-Headers': 'X-Custom-Header',
'Access-Control-Request-Method': 'POST',
},
mode: 'cors',
})