网上很多针对 Laravel 版本的扩展包能解决跨域问题,比如 fruitcake/laravel-cors、barryvdh/laravel-cors 等,但是在 Laravel11下,都无法安装,原因是版本太高了,以下采用另一种方式来解决跨域问题,也就是中间件的形式。
1、首先创建跨域中间件 CheckCors.php
php artisan make:middleware CheckCors
2、编写中间件跨域代码
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
class CheckCors
{
  /**
   * Handle an incoming request.
   * 跨域中间件
   * @param \Illuminate\Http\Request $request
   * @param \Closure $next
   * @return mixed
   */
  public function handle($request, Closure $next)
  {
    $response = $next($request);
    $response->header('Access-Control-Allow-Origin', '*');
    $response->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
    $response->header('Access-Control-Allow-Headers', 'Content-Type, Authorization');
    return $response;
  }
}
?>3、注册中间件
打开 /bootstrapapp.php 文件,在中间件里面加入如下代码
$middleware->appendToGroup('CheckCors', [
  App\Http\Middleware\CheckCors::class,
]); //跨域示例:
<?php
use Illuminate\Foundation\Application;
use Illuminate\Foundation\Configuration\Exceptions;
use Illuminate\Foundation\Configuration\Middleware;
return Application::configure(basePath: dirname(__DIR__))
  ->withRouting(
    web: __DIR__.'/../routes/web.php',
    commands: __DIR__.'/../routes/console.php',
    health: '/up',
  )
  ->withMiddleware(function (Middleware $middleware) {
      $middleware->appendToGroup('CheckCors', [
        App\Http\Middleware\CheckCors::class,
      ]); //跨域
  })
  ->withExceptions(function (Exceptions $exceptions) {
    //
  })->create();
?>4、在路由定义文件中使用中间件
打开 routes/routes/api.php 这里博主在 api.php 里面使用跨域中间件
<?php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
Route::post('admin/login', [App\Http\Controllers\Admin\LoginController::class, 'login'])->middleware('CheckCors')->name('admin.login.login');
?>
                    
                    
                                
                                
                        
                        
                        
                        
                        
                        
                        
                        
                
                
                        
                        
                        
                        
关于简忆
简忆诞生的故事
            


粤ICP备16092285号
文章评论(0)