Для корректной настройки политики CORS (Cross-Origin Resource Sharing) в Laravel 9 на локальном сервере (localhost), вам потребуется выполнить несколько шагов:
1. Установите пакет Laravel CORS:
В командной строке перейдите в корневую папку вашего проекта Laravel и выполните следующую команду:
composer require fruitcake/laravel-cors
Это установит пакет fruitcake/laravel-cors
и его зависимости.
2. Опубликуйте конфигурационный файл пакета:
В командной строке выполните следующую команду:
php artisan vendor:publish --tag=cors
Команда опубликует конфигурационный файл пакета config/cors.php
, который вы сможете настроить по вашим потребностям.
3. Настройте политику CORS в файле config/cors.php
:
В открытом файле config/cors.php
вы найдете примеры настроек CORS. Вы можете изменить эти настройки в соответствии с вашими потребностями. Некоторые наиболее важные настройки:
- 'paths' => ['api/*'],
- Здесь вы можете указать пути, которые требуют поддержки CORS. По умолчанию, указан путь api/*
, что означает, что все запросы к yourapp.test/api/*
будут поддерживаться политикой CORS.
- 'allowed_methods' => ['*'],
- Здесь вы можете указать разрешенные HTTP-методы для CORS-запросов. '*'
означает, что разрешены все методы.
- 'allowed_origins' => ['http://localhost:8080'],
- Здесь вы можете указать домены, разрешенные для CORS-запросов. По умолчанию, указан только http://localhost:8080
, но вы можете добавить другие домены, разделив их запятыми.
- 'allowed_headers' => ['*'],
- Здесь вы можете указать разрешенные заголовки для CORS-запросов. '*'
означает, что разрешены все заголовки.
- 'exposed_headers' => [],
- Здесь вы можете указать список заголовков, которые будут доступны на клиентской стороне. По умолчанию, массив пуст.
- 'max_age' => 0,
- Здесь вы можете указать максимальное время хранения предыдущего ответа на префлайт-запрос (Preflight request) в секундах. По умолчанию, установлено значение 0
, что означает отключение кэширования.
4. Примените настройки политики CORS в маршрутах или глобально:
В файле маршрутов (например, routes/api.php
) вы можете применить политику CORS только для определенных маршрутов:
Route::middleware('cors')->group(function () { // Здесь находятся ваши маршруты, требующие CORS-поддержки });
Чтобы применить политику CORS ко всем маршрутам в вашем приложении, вы можете отредактировать файл app/Http/Kernel.php
:
protected $middlewareGroups = [ 'web' => [ // Здесь находятся ваши текущие middleware ], 'api' => [ 'throttle:60,1', FruitcakeCorsHandleCors::class, // Здесь находится middleware для работы с CORS ], ];
5. Запустите сервер и проверьте настройки политики CORS:
Запустите ваш локальный сервер Laravel, используя команду:
php artisan serve
После запуска сервера вы можете отправить тестовый CORS-запрос с клиентской стороны на ваше приложение Laravel через http://localhost:8000/api/*
(или другой указанный путь в настройках CORS). Если политика CORS настроена правильно, запрос должен быть разрешен и обработан корректно.
Это подробное руководство показывает, как корректно настроить политику CORS в Laravel 9 на локальном сервере (localhost). Учитывая ваши потребности, вы можете настроить дополнительные параметры и правила для политики CORS, как указано в документации пакета fruitcake/laravel-cors
.