Вы можете использовать https://github.com/nelmio/NelmioCorsBundle -> его легко настроить
nelmio_cors:
defaults:
allow_credentials: false
allow_origin: []
allow_headers: []
allow_methods: []
expose_headers: []
max_age: 0
hosts: []
origin_regex: false
forced_allow_origin_value: ~
paths:
'^/api/':
allow_origin: ['*']
allow_headers: ['X-Custom-Auth']
allow_methods: ['POST', 'PUT', 'GET', 'DELETE']
max_age: 3600
'^/':
origin_regex: true
allow_origin: ['^http://localhost:[0-9]+']
allow_headers: ['X-Custom-Auth']
allow_methods: ['POST', 'PUT', 'GET', 'DELETE']
max_age: 3600
hosts: ['^api\.']
для ответа вручную, вы можете прочитать определение в https://developer.mozilla.org/en-US/docs/Glossary/Preflight_request
-> это в основномзаявляет, что запрос Option будет содержать как минимум 3 заголовка:
- Access-Control-Request-Method
- Access-Control-Request-Headers
- Origin
Чтобы запрос был выполнен успешно, вам нужно будет ответить на этот запрос путем возврата и пустого ответа со следующими заголовками:
- Access-Control-Request-Methods - списокразрешенные вами методы (т. е. «POST, GET, OPTIONS»)
- Access-Control-Allow-Origin - запрашиваемый источник
или статус не 2xx, если запрос corsдолжно быть отклонено