首页 > 后端开发 > php教程 > 如何在 Laravel 5.1 中实现自定义 CORS 中间件?

如何在 Laravel 5.1 中实现自定义 CORS 中间件?

Patricia Arquette
发布: 2024-12-22 16:21:09
原创
269 人浏览过

How to Implement Custom CORS Middleware in Laravel 5.1?

在 Laravel 5.1 中启用 CORS

使用 Laravel 5.1 开发 API 时,启用跨域资源共享 (CORS) 对于允许请求至关重要来自不同的起源。虽然存在各种 CORS 库,但本文重点介绍专门为 Laravel 5.1 定制的自定义中间件实现。

CORS 中间件

要启用 CORS,请在以下位置创建一个中间件类app/Http/Middleware/CORS.php:

use Closure;

class CORS {
    public function handle($request, Closure $next)
    {
        header("Access-Control-Allow-Origin: *");
        $headers = [
            'Access-Control-Allow-Methods' => 'POST, GET, OPTIONS, PUT, DELETE',
            'Access-Control-Allow-Headers' => 'Content-Type, X-Auth-Token, Origin'
        ];
        if ($request->getMethod() == "OPTIONS") {
            return Response::make('OK', 200, $headers);
        }

        $response = $next($request);
        foreach ($headers as $key => $value) {
            $response->header($key, $value);
        }
        return $response;
    }
}
登录后复制

注册中间件

在 app/Http/Kernel.php 中注册您的中间件:

protected $routeMiddleware = [
    'cors' => 'App\Http\Middleware\CORS',
];
登录后复制

使用中间件

要在路由中使用 CORS 中间件,请添加 'middleware' =>; 'cors' 添加到路由定义中:

Route::get('example', ['middleware' => 'cors', function () {
    return 'example';
}]);
登录后复制

Laravel ^8.0 Update

在 Laravel 8.0 及以上版本中,您需要导入控制器命名空间并使用类名如下:

use App\Http\Controllers\ExampleController;

Route::get('example', [ExampleController::class, 'dummy'])->middleware('cors');
登录后复制

按照以下步骤,您可以轻松启用Laravel 5.1 API 中的 CORS,允许来自不同域的请求并提供安全灵活的 API 环境。

以上是如何在 Laravel 5.1 中实现自定义 CORS 中间件?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板