报错信息案例:
Failed to load http://xxx: No 'Access-Control-Allow-Origin' header is present on the requested resource.
解决方案:
barryvdh / laravel-cors
1. 安装
$ composer require barryvdh/laravel-cors
2. 配置
在./config/app.php的providers增加:
Barryvdh\Cors\ServiceProvider::class,
在./config/app.php的aliases增加(这一步github中没有):
'cors' => \Barryvdh\Cors\HandleCors::class,
以上配置可以使它在middleware方法中引用,但是这样只能保证GET好使。
如果业务中POST/PATCH也有跨域,需要配置:
./app/Http/Kernel.php中的protected $middleware = [增加:
\Barryvdh\Cors\HandleCors::class,
此时可以在路由中不需要在middleware方法中引用,也可以实现跨域访问了。
3. 使用
// 中间件cors是解决跨域访问问题的
Route::middleware('cors:api')->get('/data', function () {
return response()->json([
['id' => 1, 'title' => 'Learn', 'status' => false]
]);
});
The end.
网友评论