解决Laravel11跨域问题,框架跨域问题解决方案

2024-07-25   阅读:308   类型:后端   分类:Laravel    标签: PHP Laravel

网上很多针对 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');
?>
【腾讯云】2核2G云服务器新老同享 99元/年,续费同价,云服务器3年机/5年机限时抢购,低至 2.5折

‘简忆博客’微信公众号 扫码关注‘简忆博客’微信公众号,获取最新文章动态
转载:请说明文章出处“来源简忆博客”。http://tpxhm.com/adetail/1109.html

×
觉得文章有用就打赏一下文章作者
微信扫一扫打赏 微信扫一扫打赏
支付宝扫一扫打赏 支付宝扫一扫打赏

文章评论(0)

登录
简忆博客壁纸一
简忆博客壁纸二
简忆博客壁纸三
简忆博客壁纸四
简忆博客壁纸五
简忆博客壁纸六
简忆博客壁纸七
简忆博客壁纸八
头像

简忆博客
勤于学习,乐于分享

置顶推荐

打赏本站

如果你觉得本站很棒,可以通过扫码支付打赏哦!
微信扫码:你说多少就多少~
微信扫码
支付宝扫码:你说多少就多少~
支付宝扫码
×