Laravel은 라우팅, 미들웨어, ORM 등을 포함한 많은 강력한 기능을 제공하는 인기 있는 PHP 웹 애플리케이션 프레임워크입니다. 그러나 Laravel을 사용하여 웹 애플리케이션을 구축할 때 도메인 간 문제가 발생하는 것은 매우 일반적입니다. 교차 도메인은 일반적으로 다른 도메인 이름의 리소스에 대한 액세스를 제한하는 브라우저의 동일 출처 정책으로 인해 발생합니다. 따라서 다른 도메인에 요청을 할 때에는 크로스 도메인을 설정해야 합니다.
아래에서는 Laravel에서 크로스 도메인을 올바르게 설정하는 방법을 소개합니다.
Laravel과 관련된 타사 소프트웨어 패키지 "Barryvdh-cors"는 개발자가 도메인 간 문제를 해결하는 데 도움이 될 수 있습니다. "Barry vd. Heuvel"이라는 네덜란드인이 개발한 이 미들웨어를 통해 Laravel은 서버 측에서 CORS(Cross-Origin Resource Sharing) 구성을 수행할 수 있습니다.
이 미들웨어를 사용하려면 먼저 설치가 필요합니다. 다음 명령을 실행하세요:
composer require barryvdh/laravel-cors
미들웨어를 설치한 후 애플리케이션에 등록해야 합니다. config/app.php 파일을 열고 공급자 배열에 다음 코드를 추가합니다.
'providers' => [ // ... Barryvdh\Cors\ServiceProvider::class, ];
그런 다음 별칭 배열에 다음 코드를 추가합니다.
'aliases' => [ // ... 'Cors' => Barryvdh\Cors\Facade::class, ];
미들웨어를 등록한 후 추가해야 합니다. 에서 이를 애플리케이션에 구성합니다. config/cors.php 파일을 열면 자동으로 생성될 수 있습니다. 그렇지 않은 경우 파일을 수동으로 생성하세요.
파일에서 도메인 간 액세스를 허용하는 도메인 이름과 AJAX를 통한 공유를 허용하는 HTTP 요청 방법을 구성할 수 있습니다. 다음은 구성 예시입니다.
return [ 'supports_credentials' => false, 'allowed_origins' => ['*'], 'allowed_headers' => ['Content-Type', 'Authorization'], 'allowed_methods' => ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS'], 'exposed_headers' => [], 'max_age' => 0, ];
이 예시에서는 모든 출처로부터의 교차 출처 액세스를 허용하지만 특정 요청 방법과 요청 헤더만 허용합니다. 더 많은 옵션을 맞춤 설정해야 한다면 [이 문서](https://github.com/barryvdh/laravel-cors)를 확인하세요.
"Barryvdh-cors" 미들웨어를 설치하고 구성하면 경로 또는 컨트롤러에서 사용할 수 있습니다.
라우팅에 사용됨:
Route::get('/data', function () { return ['message' => 'Hello World']; })->middleware('cors'); // Use cors middleware
컨트롤러에 사용됨:
namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use Barryvdh\Cors\HandleCors; class ExampleController extends Controller { /** * Use Cors middleware to handle the request */ public function index(Request $request) { $middleware = new HandleCors(); $response = $middleware->handle($request, function($request) { return ['message' => 'Hello World']; }); return $response; } }
"Barryvdh-cors" 미들웨어를 사용하면 Laravel 애플리케이션의 도메인 간 문제를 쉽게 해결할 수 있습니다. 이 미들웨어는 라우팅과 컨트롤러를 지원할 뿐만 아니라 글로벌 구성, 그룹 구성 등도 지원하므로 크로스 도메인 정책을 보다 자유롭고 정확하게 제어할 수 있습니다.
위 내용은 Laravel에서 크로스 도메인을 올바르게 설정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!