프런트엔드와 백엔드가 별도로 있는 프로젝트에서는 프런트엔드가 백엔드 인터페이스를 요청할 때 도메인 간 문제가 발생할 수 있습니다. 그 중 일반적인 시나리오는 프런트엔드 프로젝트가 http://localhost:8080에서 실행되고 백엔드 프로젝트가 http://localhost:8000에서 실행되는 경우입니다. 이 경우 크로스 도메인 설정이 필요합니다. 세트.
Laravel에서는 다음 두 가지 방법을 사용하여 크로스 도메인을 설정할 수 있습니다.
먼저 미들웨어 생성 CorsMiddleware:
php artisan make:middleware CorsMiddleware
CorsMiddleware에서 크로스 도메인 처리:
<?php namespace App\Http\Middleware; use Closure; class CorsMiddleware { public function handle($request, Closure $next) { $origin = $request->header('Origin') ?: '*'; header('Access-Control-Allow-Origin: ' . $origin); header('Access-Control-Allow-Headers: Origin, Content-Type, Authorization'); header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS'); return $next($request); } }
미들웨어는 Http/Kernel.php의 $middleware 배열에 등록됩니다:
protected $middleware = [ // ... \App\Http\Middleware\CorsMiddleware::class, ];
이때 , Laravel은 응답 헤더에 Access-Control-Allow-Origin과 같은 도메인 간 관련 정보를 추가합니다.
사실 Laravel 커뮤니티에는 도메인 간 문제를 처리하는 데 사용할 수 있는 오픈 소스 확장 패키지가 이미 많이 있습니다. 예를 들어, laravel-cors는 도메인 간 요청을 설정하기 위한 일부 구성 항목을 제공합니다.
먼저 확장 패키지를 설치합니다.
composer require barryvdh/laravel-cors
그런 다음 config/app.php의 공급자 배열에 서비스 공급자를 등록합니다.
'providers' => [ // ... Barryvdh\Cors\ServiceProvider::class, ],
마지막으로 구성 파일을 게시합니다.
php artisan vendor:publish --provider="Barryvdh\Cors\ServiceProvider"
이번에는 config에서 다음을 수행할 수 있습니다. /cors. PHP에서 도메인 간 요청 구성:
return [ /* |-------------------------------------------------------------------------- | Laravel CORS Options |-------------------------------------------------------------------------- | | The allowed_methods and allowed_headers options are case-insensitive. | */ 'allowed_origins' => ['*'], 'allowed_origins_patterns' => [], 'allowed_headers' => ['*'], 'allowed_methods' => ['*'], 'exposed_headers' => [], 'max_age' => 0, 'supports_credentials' => false, ];
필요에 따라 적절하게 구성하세요.
위는 Laravel에서 크로스 도메인 설정을 구성하는 두 가지 방법입니다. 자신에게 맞는 방법을 선택하세요.
위 내용은 도메인 간 laravel을 설정하는 방법(두 가지 방법)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!