laravel5.8的前后端分离跨域问题,试了网上找的很多办法,还是报跨域?亲们有解决的?
【以下回答由 GPT 生成】
Laravel提供了一种简单的方法来解决跨域问题,你可以通过设置中间件来实现。下面是解决步骤:
首先,打开你的 Laravel 项目,进入到 app/Http/Middleware
目录下。
创建一个新的中间件文件,命名为 CorsMiddleware.php
。
在 CorsMiddleware.php
文件中,添加以下代码:
<?php
namespace App\Http\Middleware;
use Closure;
class CorsMiddleware
{
public function handle($request, Closure $next)
{
$headers = [
'Access-Control-Allow-Origin' => '*',
'Access-Control-Allow-Methods' => 'GET, POST, PUT, DELETE, OPTIONS',
'Access-Control-Allow-Headers' => 'Content-Type, Authorization',
];
if ($request->isMethod('OPTIONS')) {
return response()->json([], 200, $headers);
}
$response = $next($request);
foreach ($headers as $key => $value) {
$response->header($key, $value);
}
return $response;
}
}
app/Http/Kernel.php
文件,在 $middlewareGroups
数组中的 'api'
数组里添加下面一行代码,将 CorsMiddleware
加入到中间件组中:\App\Http\Middleware\CorsMiddleware::class,
这个中间件会在每个请求进入和离开应用程序时进行处理,添加相应的响应头,从而解决跨域问题。
【相关推荐】