最近在学习restful开发,在本地环境下前端使用element ui(基于VUE),后台使用Laravel。

在前端向后端post数据时,Laravel报错:TokenMismatchException in VerifyCsrfToken.php。

错误原因是Laravel默认开启了CSRF功能,而我是前后端分离项目,本来就是跨域的,也就触发了CSRF的异常,解决办法如下:

1.安装laravel-cors

composer require barryvdh/laravel-cors

2.全局配置中间件,在app/Http/Kernel.php文件中的中间件配置中加入如下代码:

protected $middleware = [
    // 新增一条
    BarryvdhCorsHandleCors::class,
];

3.如果只想api,采用下面方式:

protected $middlewareGroups = [
    'web' => [
        // ...
    ],
    'api' => [
        // ...
        BarryvdhCorsHandleCors::class,
    ],
];