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

Bagaimana untuk Mendayakan CORS dalam Laravel 5.1?

DDD
DDDasal
2024-12-07 17:41:11733semak imbas

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;
    }

}

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',
    ];

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'));

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');

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:
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