Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Mendayakan CORS dalam Laravel 5.1?

Bagaimana untuk Mendayakan CORS dalam Laravel 5.1?

DDD
Lepaskan: 2024-12-07 17:41:11
asal
813 orang telah melayarinya

How to Enable CORS in Laravel 5.1?

Cara Mendayakan CORS dalam Laravel 5.1

Mengintegrasikan CORS (Cross-Origin Resource Sharing) ke dalam Laravel membenarkan pelayan memberikan kebenaran untuk cross- panggilan API asal. Artikel ini membimbing anda melalui cara khusus untuk mendayakan CORS dalam Laravel versi 5.1.

CORS Middleware untuk Laravel

// app/Http/Middleware/CORS.php

namespace App\Http\Middleware;

use Closure;

class CORS
{

    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {

        header("Access-Control-Allow-Origin: *");

        // ALLOW OPTIONS METHOD
        $headers = [
            'Access-Control-Allow-Methods' => 'POST, GET, OPTIONS, PUT, DELETE',
            'Access-Control-Allow-Headers' => 'Content-Type, X-Auth-Token, Origin'
        ];
        if($request->getMethod() == "OPTIONS") {
            // The client-side application can set only headers allowed in Access-Control-Allow-Headers
            return Response::make('OK', 200, $headers);
        }

        $response = $next($request);
        foreach($headers as $key => $value)
            $response->header($key, $value);
        return $response;
    }

}
Salin selepas log masuk

Daftarkan CORS Middleware

Selepas mencipta perisian tengah, daftarkannya dalam app/Http/Kernel.php fail:

// app/Http/Kernel.php

protected $routeMiddleware = [
        //other middlewares
        'cors' => 'App\Http\Middleware\CORS',
    ];
Salin selepas log masuk

Gunakan CORS dalam Laluan

Akhir sekali, gunakan perisian tengah cors dalam laluan yang anda ingin benarkan silang- panggilan API asal:

Route::get('example', array('middleware' => 'cors', 'uses' => 'ExampleController@dummy'));
Salin selepas log masuk

Nota untuk Laravel ^8.0

Dalam Laravel versi 8.0 dan ke atas, adalah penting untuk menggunakan sintaks berikut untuk mendaftarkan perisian tengah CORS disebabkan oleh perubahan ruang nama:

// app/Http/Kernel.php

protected $routeMiddleware = [
        //other middlewares
        'cors' => 'App\Http\Middleware\CORS',
    ];

// routes/web.php or routes/api.php

use App\Http\Controllers\ExampleController;

Route::get('example', [ExampleController::class, 'dummy'])->middleware('cors');
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mendayakan CORS dalam Laravel 5.1?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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