>  기사  >  PHP 프레임워크  >  도메인 간 laravel을 설정하는 방법(두 가지 방법)

도메인 간 laravel을 설정하는 방법(두 가지 방법)

PHPz
PHPz원래의
2023-04-08 15:30:023303검색

프런트엔드와 백엔드가 별도로 있는 프로젝트에서는 프런트엔드가 백엔드 인터페이스를 요청할 때 도메인 간 문제가 발생할 수 있습니다. 그 중 일반적인 시나리오는 프런트엔드 프로젝트가 http://localhost:8080에서 실행되고 백엔드 프로젝트가 http://localhost:8000에서 실행되는 경우입니다. 이 경우 크로스 도메인 설정이 필요합니다. 세트.

Laravel에서는 다음 두 가지 방법을 사용하여 크로스 도메인을 설정할 수 있습니다.

  1. 미들웨어 방법

먼저 미들웨어 생성 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과 같은 도메인 간 관련 정보를 추가합니다.

  1. Laravel-cors 확장 패키지

사실 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.