由于CORS,无法从前端向我的laravel beckend发送请求

时间:2020-01-31 11:28:44

标签: laravel cors laravel-6

我有一个奇怪的问题。 我使用laravel作为我的beckend,并且从前端尝试将请求发送到我的API,但是它在另一台服务器上,因此我将laravel-cors用于CORS。

但是我仍然得到Has been blocked by CORS POLICY no access controll allow origin problem

我该如何解决这个问题?

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以将这两行添加到public / index.php文件中:

header('Access-Control-Allow-Origin: *');  
header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS');

或.. 通过使用中间件的Laravel方式,您可以创建一个中间件名称cors:

php artisan make:middleware Cors

然后将这段代码放入handle方法:

return $next($request)
      ->header(‘Access-Control-Allow-Origin’, ‘*’)
      ->header(‘Access-Control-Allow-Methods’, ‘GET, POST, PUT, DELETE, OPTIONS’)
      ->header(‘Access-Control-Allow-Headers’, ‘X-Requested-With, Content-Type, X-Token-Auth, Authorization’);

将此行添加到app / http / kernel.php文件中的$ routeMiddleware变量中:

‘cors’ => \App\Http\Middleware\Cors::class,

然后在您的路线上使用此中间件:

 Route::group(['prefix' => 'api/v.1', 'namespace' => 'API', 'middleware' => 'cors'], function () {
// routes...
});