@Quieteroks
php программист

Как правильно настроить CORS фильтр yii2 для работы с Reakt?

Добрый день.

Пытаемся настроить cors фильтр для yii2 так, чтобы не приходилось делать дополнительные костыли.
Сейчас оно выглядит так:
'corsFilter' => [
    'class' => Cors::class,
    'cors' => [
        'Origin' => ['*'],
        'Access-Control-Request-Method' => ['OPTIONS', 'GET', 'POST'],
        'Access-Control-Request-Headers' => ['Authorization,DNT,Keep-Alive,User-Agent,X-CustomHeader,X-Requested-With,If-Modified-Since,Cache-Control,Range,Content-Type'],
        'Access-Control-Allow-Credentials' => true,
        'Access-Control-Max-Age' => 3600,
        'Access-Control-Expose-Headers' => ['Content-Length,Content-Range'],
    ],
],


Несмотря на такой обширный список разрешенных заголовков, все равно приходится где нибудь ставить "заглушку" вида:
public function beforeAction($action)
{
    \Yii::$app->response->headers->add('Access-Control-Allow-Headers', 'Authorization,DNT,Keep-Alive,User-Agent,X-CustomHeader,X-Requested-With,If-Modified-Since,Cache-Control,Range,Content-Type');
    return parent::beforeAction($action);
}


Если не делать дополнительную отправку заголовков, почему то мы получаем ошибку, например последняя:
Request header field Content-Type is not allowed by Access-Control-Allow-Headers in preflight response.


При этом вопрос касается только json типа отправки, при form-data заголовок не требуется и пропускает спокойно.

Что и где нужно настроить, чтобы не делать больше такие заглушки?
  • Вопрос задан
  • 697 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы