laravel post请求失败

时间:2021-03-18 10:53:28

今天继续研究laravel,在路由里注册了一个控制器路由Route::controller()。

先get请求一个页面

class UserController extends Controller{

    public function getIndex(){

        echo view('index');
} }

OK,没有问题,请求成功。

继续。

post请求,

public function postLogin(){

    }

失败!!!!

很奇怪,按照文档应该是这样写method+name 的形式。很蛋疼,仔细检查是不是请求名称错误,没有错。

百度一下,额~,貌似没有,应该不是什么问题,可能是我写的不对,回头继续去看laravel的文档。

原来是post请求laravel会启动CSRF保护

以下是laravel文档里的的说法:

Laravel 提供简易的方法,让您可以保护您的应用程序不受到 CSRF (跨网站请求伪造)攻击。跨网站请求伪造是一种恶意的攻击,借以代表经过身份验证的用户执行未经授权的命令。

Laravel 会自动在每一位用户的 session 中放置随机的 token ,这个 token 将被用来确保经过验证的用户是实际发出请求至应用程序的用户:

插入 CSRF Token 到表单

<input type="hidden" name="_token" value="<?php echo csrf_token(); ?>">

当然也可以在 Blade 模板引擎使用:

<input type="hidden" name="_token" value="{{ csrf_token() }}">