首頁 >後端開發 >php教程 >如何在 Laravel 5.1 啟用 CORS?

如何在 Laravel 5.1 啟用 CORS?

DDD
DDD原創
2024-12-07 17:41:11732瀏覽

How to Enable CORS in Laravel 5.1?

如何在Laravel 5.1 中啟用CORS

將CORS(跨域資源共享)整合到Laravel 中可以讓授予跨域伺服器原始API 呼叫。本文將引導您在 Laravel 5.1 版本中啟用 CORS 的具體方法。

Laravel 的CORS 中間件

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

}

註冊CORS 中介軟體

建立中間件後,將其註冊到app/Http/Kernel.php檔案:

// app/Http/Kernel.php

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

在路由中應用CORS

最後,在要允許交叉的路由中使用cors 中間件原始API 呼叫:

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

Laravel註^8.0

在 Laravel 8.0 及以上版本中,由於命名空間更改,請務必使用以下語法來註冊 CORS 中間件:

以上是如何在 Laravel 5.1 啟用 CORS?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn