Как настроить CORS в yii2?

Для настройки CORS (Cross-Origin Resource Sharing) в Yii2 вам потребуется выполнить несколько шагов:

1. Подключите расширение yii2-cors к вашему проекту. Для этого добавьте следующую зависимость в файл composer.json:

"require": {
    "kartik-v/yii2-cors": "*"
}

Затем выполните команду composer update, чтобы установить расширение.

2. В файле конфигурации вашего приложения (обычно config/web.php) добавьте следующий код для настройки фильтра CORS:

'bootstrap' => ['log', 'cors'],
'components' => [
    // ...
    'cors' => [
        'class' => kartikcorsCors::class,
        'origin' => ['*'],
        'accessControlAllowMethods' => [
            'GET',
            'POST',
            'PUT',
            'PATCH',
            'DELETE',
            'HEAD',
            'OPTIONS',
        ],
    ],
    // ...
],

В этом коде мы настраиваем фильтр CORS для разрешения запросов со всех источников ('origin' => ['*']) и разрешаем различные HTTP-методы ('accessControlAllowMethods').

3. Добавьте фильтр CORS в списки behaviors вашего контроллера или модуля, в которых требуется настройка CORS. Например:

public function behaviors()
{
    return [
        'corsFilter' => [
            'class' => kartikcorsCorsCustom::class,
        ],
        // ...
    ];
}

Этот фильтр будет применяться ко всем экшнам контроллера, на котором он настроен.

4. После настройки CORS необходимо установить заголовок Access-Control-Allow-Origin для ответов сервера.
Чтобы Yii2 автоматически добавлял этот заголовок к каждому ответу, добавьте следующий код в файл index.php перед инициализацией приложения:

header('Access-Control-Allow-Origin: *');

После выполнения этих шагов CORS должен быть правильно настроен в вашем приложении Yii2, и вы сможете без проблем обмениваться данными между различными доменами и источниками.