Если вы разработчик Laravel и работаете в локальной среде разработки, возможно, вы столкнулись с неприятной ошибкой CORS (совместное использование ресурсов между источниками). Эта ошибка возникает, когда веб-приложение, работающее на одном домене (в данном случае localhost), пытается отправить запросы к другому домену, а браузер блокирует запрос из соображений безопасности. В этом сообщении блога мы рассмотрим несколько способов устранения ошибки Laravel CORS на локальном хосте и по ходу дела предоставим вам простые для понимания примеры кода.
Метод 1. Установка пакета Laravel CORS
Один из самых простых способов решения проблем CORS в Laravel — использование специального пакета. Пакет Fruitcake/laravel-cors предоставляет промежуточное программное обеспечение, которое добавляет необходимые заголовки для включения запросов между источниками. Чтобы установить пакет, откройте терминал и выполните следующую команду:
composer require fruitcake/laravel-cors
После установки вам необходимо зарегистрировать промежуточное ПО в файле app/Http/Kernel.php
:
protected $middleware = [
// ...
\Fruitcake\Cors\HandleCors::class,
];
Это промежуточное программное обеспечение автоматически добавит необходимые заголовки к ответам вашего приложения Laravel, позволяя выполнять запросы между источниками.
Метод 2: настройка заголовков CORS вручную
Если вы предпочитаете не использовать пакет, вы можете вручную настроить заголовки CORS в своем приложении Laravel. Откройте файл app/Http/Middleware/VerifyCsrfToken.php
и добавьте следующий код в метод handle
:
public function handle($request, Closure $next)
{
$response = $next($request);
$response->header('Access-Control-Allow-Origin', '*');
$response->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE');
$response->header('Access-Control-Allow-Headers', 'Content-Type, Authorization');
return $response;
}
Явно устанавливая заголовки Access-Control-Allow-Origin
, Access-Control-Allow-Methods
и Access-Control-Allow-Headers
, вы разрешаете запросы между источниками к вашему приложению Laravel.
Метод 3: изменение файла.htaccess (Apache).
Если вы используете Apache в качестве веб-сервера, вы также можете изменить файл .htaccess
в общей папке вашего проекта Laravel, чтобы включить КОРС. Добавьте следующие строки в начало файла:
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Methods "GET, POST, PUT, DELETE"
Header set Access-Control-Allow-Headers "Content-Type, Authorization"
</IfModule>
Эти директивы установят необходимые заголовки для CORS, позволяя выполнять запросы к вашему приложению Laravel из разных источников.
Работа с ошибками CORS на локальном хосте может быть неприятной, но, к счастью, в Laravel есть несколько способов их устранения. В этой статье мы обсудили три подхода: использование пакета Laravel CORS, настройку заголовков CORS вручную и изменение файла.htaccess для Apache. Реализуя эти методы, вы можете успешно решать проблемы CORS во время локальной разработки, обеспечивая бесперебойную связь между вашим приложением Laravel и другими доменами.