Rumah > rangka kerja php > Laravel > teks badan

Cara menyediakan laravel merentas domain (dua kaedah)

PHPz
Lepaskan: 2023-04-08 15:30:02
asal
3353 orang telah melayarinya

Dalam projek dengan bahagian hadapan dan bahagian belakang yang berasingan, masalah merentas domain mungkin dihadapi apabila bahagian hadapan meminta antara muka bahagian belakang. Antaranya, senario biasa ialah: projek bahagian hadapan dijalankan di http://localhost:8080, dan projek bahagian belakang dijalankan di http://localhost:8000 Dalam kes ini, tetapan merentas domain perlu ditetapkan.

Dalam Laravel, anda boleh menggunakan dua kaedah berikut untuk menyediakan merentas domain.

  1. Kaedah middleware

Mula-mula buat middleware CorsMiddleware:

php artisan make:middleware CorsMiddleware
Salin selepas log masuk

Kendalikan silang domain dalam 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);
    }
}
Salin selepas log masuk

Perisian tengah akan didaftarkan dalam tatasusunan $middleware dalam Http/Kernel.php:

protected $middleware = [
    // ...
    \App\Http\Middleware\CorsMiddleware::class,
];
Salin selepas log masuk

Pada masa ini, Laravel akan menambah Access-Control-Allow-Origin dan isu berkaitan merentas domain lain dalam maklumat tajuk respons.

  1. Pakej sambungan Laravel-cors

Malah, komuniti Laravel sudah mempunyai banyak pakej sambungan sumber terbuka yang boleh digunakan untuk mengendalikan isu merentas domain. Contohnya, laravel-cors menyediakan beberapa item konfigurasi untuk menyediakan permintaan merentas domain.

Mula-mula, pasang pakej sambungan:

composer require barryvdh/laravel-cors
Salin selepas log masuk

Kemudian, daftarkan penyedia perkhidmatan dalam tatasusunan penyedia dalam config/app.php:

'providers' => [
    // ...
    Barryvdh\Cors\ServiceProvider::class,
],
Salin selepas log masuk

Akhir sekali, Terbitkan fail konfigurasi:

php artisan vendor:publish --provider="Barryvdh\Cors\ServiceProvider"
Salin selepas log masuk

Pada masa ini, anda boleh mengkonfigurasi permintaan merentas domain dalam 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,

];
Salin selepas log masuk

Konfigurasikan sewajarnya seperti yang diperlukan.

Di atas ialah dua kaedah untuk menyediakan tetapan merentas domain dalam Laravel. Pilih sahaja yang sesuai dengan anda.

Atas ialah kandungan terperinci Cara menyediakan laravel merentas domain (dua kaedah). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan