为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel 6 CORS 政策问题与 API

Laravel 6 CORS 政策问题与 API

PHP
慕桂英546537 2022-06-11 10:11:16
这是我尝试过的中间件 return $next($request)        ->header('Access-Control-Allow-Origin', '*')        ->header('Access-Control-Allow-Credentials', 'true')        ->header('Access-Control-Allow-Headers', 'Origin, Content-Type, Authorization, X-Requested-With, Accept, X-Token-Auth, Application')        ->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');API 路由Route::group(['middleware' => ['cors', 'auth:api']], function() {Route::options('{any}');Route::post('user/profile','UserController@profile');内核.phpprotected $routeMiddleware = [    'cors' => \App\Http\Middleware\Cors::class,但是,我仍然在来自另一个来源的 API 调用中收到此错误。对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。任何原因?
查看完整描述

2 回答

?
炎炎设计

TA贡献1808条经验 获得超4个赞

最简单的解决方案 转到 bootstrap 文件夹并打开 app.php 文件。然后只需在文件顶部添加这些行。应用程序.php


  header('Access-Control-Allow-Origin: *');

  header('Access-Control-Allow-Methods: *');

  header('Access-Control-Allow-Headers: *');

另一个解决方案:


      php artisan make:middleware Cors

现在从 App\Http\Middleware 文件夹中打开 Cors.php 并用以下代码替换 handle() 函数:


Cors.php


  public function handle($request, Closure $next)

  {

      return $next($request)

          ->header('Access-Control-Allow-Origin', '*')

          ->header('Access-Control-Allow-Methods', 'GET, POST, PUT, PATCH, DELETE,


        OPTIONS')

          ->header('Access-Control-Allow-Headers', 'Content-Type, Authorizations');

  }

最后,从 App\Http 文件夹中打开 Kernel.php,将以下行添加到 $middleware 数组中:


  protected $middleware = [

      ...

      \App\Http\Middleware\Cors::class,

  ];

现在运行应用程序并从任何地方调用 API。


查看完整回答
反对 回复 2022-06-11
?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

需要 composer.json 中的fruitcake/laravel-cors 包并更新您的依赖项:


composer require fruitcake/laravel-cors

全球使用


要允许所有路由使用 CORS,请在app/Http/Kernel.php类的 $middleware 属性中添加 HandleCors 中间件:


protected $middleware = [

    // ...

    \Fruitcake\Cors\HandleCors::class,

];

配置


php artisan vendor:publish --tag="cors"

现在更新配置以定义要在其上运行 CORS 服务的路径(请参阅下面的配置):


配置/cors.php


'paths' => ['api/*'],

更多细节https://github.com/fruitcake/laravel-cors


查看完整回答
反对 回复 2022-06-11
  • 2 回答
  • 0 关注
  • 156 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信