美文网首页各种技术
Laravel 5.5 跨域访问解决方案

Laravel 5.5 跨域访问解决方案

作者: 李颖轩_LiYingxuan | 来源:发表于2017-10-17 16:44 被阅读573次

    报错信息案例:
    Failed to load http://xxx: No 'Access-Control-Allow-Origin' header is present on the requested resource.

    解决方案:
    barryvdh / laravel-cors

    1. 安装
     $ composer require barryvdh/laravel-cors
    
    2. 配置

    在./config/app.php的providers增加:

    Barryvdh\Cors\ServiceProvider::class,
    

    在./config/app.php的aliases增加(这一步github中没有):

    'cors' => \Barryvdh\Cors\HandleCors::class,
    

    以上配置可以使它在middleware方法中引用,但是这样只能保证GET好使。

    如果业务中POST/PATCH也有跨域,需要配置:
    ./app/Http/Kernel.php中的protected $middleware = [增加:

    \Barryvdh\Cors\HandleCors::class,
    

    此时可以在路由中不需要在middleware方法中引用,也可以实现跨域访问了。

    3. 使用
    // 中间件cors是解决跨域访问问题的
    Route::middleware('cors:api')->get('/data', function () {
        return response()->json([
            ['id' => 1, 'title' => 'Learn', 'status' => false]
        ]);
    });
    

    The end.

    相关文章

      网友评论

        本文标题:Laravel 5.5 跨域访问解决方案

        本文链接:https://www.haomeiwen.com/subject/hgbduxtx.html