Symfony FosRest и NelmioCors Подстановочный знак "*" нельзя использовать в "Access-Control-Allow-Origin"

Я использую FOSRestBundle с Nelmio Cors Bundle и у меня есть некоторые конечные точки, /api/name_end_points, и мне нужно, чтобы у некоторых серверов были полномочия для вызова этих конечных точек. Теперь у меня ошибка в консоли

XMLHttpRequest cannot load http://mydomain.com.com/api/endpoint?value=test&value1=test. A wildcard '*' cannot be used in the 'Access-Control-Allow-Origin' header when the credentials flag is true. Origin 'http://localhost:3000' is therefore not allowed access.

Это мой конфиг:

fos_rest:
param_fetcher_listener: true
body_listener: true
format_listener: true
view:
    view_response_listener: 'force'
    formats:
        xml: true
        json : true
    templating_formats:
        html: true
    force_redirects:
        html: true
    failed_validation: HTTP_BAD_REQUEST
    default_engine: twig
routing_loader:
    default_format: json

nelmio_cors:
defaults:
    allow_credentials: false
    allow_origin: []
    allow_headers: []
    allow_methods: []
    expose_headers: []
    max_age: 0
    hosts: []
    origin_regex: false
paths:
    '^/':
        allow_origin: ['*']
        allow_headers: ['*']
        allow_methods: ['POST', 'PUT', 'GET', 'DELETE']
        max_age: 3600

Как исправить конфиг NelmioCorsBundle, если я хочу получить доступ к true для некоторого сервера для моих конечных точек? Как это

            allow_origin: ['*aog.jobs*', '*localhost*']

и удалил дефолт?

1 ответ

Вы должны явно указать, что источник (как указано в Origin заголовокзапроса) разрешается доступ к ресурсу путем копирования значения Origin Заголовок запроса в Access-Control-Allow-Origin заголовокответа (вместо жесткого кодирования *).

Будьте уверены, что хотите сделать это глобально доступным для всего мира, прежде чем сделать это (или выполнить тест на ценность Origin заголовок, чтобы убедиться, что все в порядке).

Другие вопросы по тегам