在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中它不再起作用了。
如何在响应中返回相应的标题?
答案 0 :(得分:1)
将所有路由放入其中以启用Web中间件组:
Route::group(['middleware' => ['web']], function () {
// Here comes your routes
});
<强> UPD。强>
要解决此问题,请使用此程序包:github.com/barryvdh/laravel-cors
答案 1 :(得分:1)
浏览器使用OPTIONS
请求检查您的端点上是否有任何CORS标头。这意味着,您需要首先关注那些飞行前的OPTIONS请求,为它们提供正确的标题。
在Lumen / Laravel中,您需要将CORS中间件也添加到与CORS资源相同的路由中,但需要使用OPTIONS方法:
$app->options(
'your/cors/uri',
[
'middleware' => 'cors', function()
function() { return response('', 200); }
]
);
有同样的问题,所以我希望这可以帮助你:)