feat: configure cors allowed headers (#6837)
## Description Currently, the Payload doesn't support to extend the Allowed Headers in CORS context. With this PR, `cors` property can be an object with `origins` and `headers`. - [x] I have read and understand the [CONTRIBUTING.md](https://github.com/payloadcms/payload/blob/main/CONTRIBUTING.md) document in this repository. ## Type of change - [ ] Chore (non-breaking change which does not add functionality) - [ ] Bug fix (non-breaking change which fixes an issue) - [x] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) - [ ] Change to the [templates](https://github.com/payloadcms/payload/tree/main/templates) directory (does not affect core functionality) - [ ] Change to the [examples](https://github.com/payloadcms/payload/tree/main/examples) directory (does not affect core functionality) - [x] This change requires a documentation update ## Checklist: - [x] I have added tests that prove my fix is effective or that my feature works - [x] Existing test suite passes locally with my changes - [x] I have made corresponding changes to the documentation Co-authored-by: Alessio Gravili <alessio@gravili.de>
This commit is contained in:
committed by
GitHub
parent
f494ebabbf
commit
9c72ab97b0
@@ -113,4 +113,8 @@ export default buildConfigWithDefaults({
|
||||
typescript: {
|
||||
outputFile: path.resolve(dirname, 'payload-types.ts'),
|
||||
},
|
||||
cors: {
|
||||
origins: '*',
|
||||
headers: ['x-custom-header'],
|
||||
},
|
||||
})
|
||||
|
||||
@@ -1,13 +1,16 @@
|
||||
import type { BlockField, Payload } from 'payload'
|
||||
|
||||
import type { NextRESTClient } from '../helpers/NextRESTClient.js'
|
||||
|
||||
import { initPayloadInt } from '../helpers/initPayloadInt.js'
|
||||
import configPromise from './config.js'
|
||||
|
||||
let restClient: NextRESTClient
|
||||
let payload: Payload
|
||||
|
||||
describe('Config', () => {
|
||||
beforeAll(async () => {
|
||||
;({ payload } = await initPayloadInt(configPromise))
|
||||
;({ payload, restClient } = await initPayloadInt(configPromise))
|
||||
})
|
||||
|
||||
afterAll(async () => {
|
||||
@@ -91,4 +94,11 @@ describe('Config', () => {
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
describe('cors config', () => {
|
||||
it('includes a custom header in Access-Control-Allow-Headers', async () => {
|
||||
const response = await restClient.GET(`/pages`)
|
||||
expect(response.headers.get('Access-Control-Allow-Headers')).toContain('x-custom-header')
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user