Laravel Lumen 5.2 Cors 中间件不工作

标签 laravel header cors lumen lumen-5.2

在 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 中它不再工作了。

如何在响应中返回适当的 header ?

最佳答案

浏览器使用 OPTIONS 请求来检查端点上是否有任何 CORS header 。这意味着,您需要首先处理这些飞行前 OPTIONS 请求,为它们提供正确的 header 。

在 Lumen/Laravel 中,您还需要将 CORS 中间件添加到与 CORS 资源相同的路由,但使用 OPTIONS 方法请求:

$app->options(
    'your/cors/uri',
    [
        'middleware' => 'cors', function() 
         function() { return response('', 200); }
    ]
);

有同样的问题,所以我希望这对你有帮助:)

关于Laravel Lumen 5.2 Cors 中间件不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35412707/

相关文章:

c++ - C++中的头文件

Django cors header 和服务器错误

cors - CORS 预检响应如何实际缓存在浏览器中?

php - Laravel - 迁移时找不到驱动程序

mysql - 如何对 SQL-Laravel 的所有聚合值求和?

laravel - Laravel 中删除返回 404 Not Found 并没有删除

asp.net - 何时在 ASP.NET Web 表单中创建响应 header ?

php - Laravel 播种机仅插入随机数的数据然后失败

c++ - 我的静态库 header 中的 void 函数问题

javascript - 带有凭据的 Webpack-dev-server CORS 错误