laravel-cors不起作用

我照着Vuejs视频教程安装并且配置了laravel-cors, 但是访问api返回的response依旧没有cross-origin头.

我确认已经完成了以下步骤:

  1. composer 安装了 barryvdh/laravel-cors

  2. 将Barryvdh\Cors\ServiceProvider::class,添加到了config/app.php providers array

  3. 在api路由里添加了cors中间件, 具体代码为:

Route::get('/users', function (Request $request) {
    return response()->json(['name' => 'Tom']);
})->middleware('cors:api');

在做以上步骤的时候我有两个疑问

  • cors要不要添加到$app->routeMiddleware数组里?

  • 要是我将Barryvdh\Cors\ServiceProvider::class或者'cors'添加到Kernel.php中的$middlewareGroups数组中的api数组里, 是不是只要写了api就可以啦?

以上两个都是次要的, 主要的问题还是想搞清楚, 为什么没起作用.

JellyBool

这样呢:

Route::get('/users', function (Request $request) {
    return response()->json(['name' => 'Tom']);
})->middleware('cors');
BeDragan 回复 JellyBool

这样就工作啦~ ! 3Q.

luozhen 回复 JellyBool

我照这样写怎么还是不行阿,教主

yin

自己写个中间件就好了

public function handle($request, Closure $next)
   {
       /*$response = $next($request);
       $response->header('Access-Control-Allow-Origin', '*');
       $response->header('Access-Control-Allow-Headers', 'X-Requested-With,X_Requested_With');*/

       $response = $next($request);
       $response->header('Access-Control-Allow-Origin', '*');
       $response->header('Access-Control-Allow-Headers', 'Origin, Content-Type, Cookie, Accept, Authorization');
       $response->header('Access-Control-Allow-Methods', 'GET, POST, PATCH, PUT, OPTIONS');
       $response->header('Access-Control-Allow-Credentials', 'true');

       return $response;
   }
BeDragan 回复 yin

大佬真是厉害!