Для настройки 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, и вы сможете без проблем обмениваться данными между различными доменами и источниками.