Laravel Lumen 5.2 Cors 中间件不工作
Posted
技术标签:
【中文标题】Laravel Lumen 5.2 Cors 中间件不工作【英文标题】:Laravel Lumen 5.2 Cors Middleware not working 【发布时间】:2016-05-26 13:26:54 【问题描述】:在 Laravel Lumen 5.1 中,我在我的 CorsMiddleware 中使用它:
public function handle($request, \Closure $next)
$response = $next($request);
$response->header('Access-Control-Allow-Methods', 'HEAD, GET, POST, PUT, PATCH, DELETE');
$response->header('Access-Control-Allow-Headers', $request->header('Access-Control-Request-Headers'));
$response->header('Access-Control-Allow-Origin', '*');
return $response;
但在 5.2 中它不再工作了。
如何在响应中返回适当的标头?
【问题讨论】:
【参考方案1】:将所有路由放入其中以启用 Web 中间件组:
Route::group(['middleware' => ['web']], function ()
// Here comes your routes
);
更新。
要解决这个问题,请使用这个包:github.com/barryvdh/laravel-cors
【讨论】:
标题仍然丢失 能否为您的问题添加更多信息?喜欢路由文件?或者你可以简单地使用这个包:github.com/barryvdh/laravel-cors【参考方案2】:浏览器使用 OPTIONS
请求来检查您的端点上是否有任何 CORS 标头。这意味着,您需要首先处理这些飞行前 OPTIONS 请求,为它们提供正确的标头。
在 Lumen/Laravel 中,您还需要将 CORS 中间件添加到与 CORS 资源相同的路由中,但使用 OPTIONS 方法请求:
$app->options(
'your/cors/uri',
[
'middleware' => 'cors', function()
function() return response('', 200);
]
);
遇到了同样的问题,希望对你有帮助:)
【讨论】:
以上是关于Laravel Lumen 5.2 Cors 中间件不工作的主要内容,如果未能解决你的问题,请参考以下文章
Angular IO 与 Laravel Lumen PHP API CORS 问题