我不知道为什么我的整个项目一直运行到上周。在前一天我无法加载网站,并且没有laravel错误显示。所以通过&更新了作曲家和包#34;作曲家更新"命令。从那时起 我在哪里使用post方法投影
TokenMismatchException in VerifyCsrfToken.php line 53:
错误。
所以我改变了那个方法来获得
<form method="get" action="{{action('SignupController@index')}}">
<input type="hidden" name="_token" value="{{csrf_token()}}">
</form>
我在控制器中写道
public function index()
{
echo Session::token();
echo '<hr>';
echo Input::get('_token');
}
它给出了结果,
kJqTndLBxOhyzUZd78Zj5IG2K5VIRVwDxepreHXE
----------------------------------------
xKpqbnzb2DoRsw6ZtqTgHgcJFB9SixydkWjLhPJA
每当我重新加载页面时,新令牌就会出现。我怎么能摆脱这个?
答案 0 :(得分:1)
务必将&#34; web&#34; -middleware应用于您的控制器/路线。 最简单的方法是创建一个路由组:
Route::group(['middleware' => 'web'], function() {
// Your route definitions here.
});
&#34; web&#34; -middleware初始化StartSession类,可以保存会话。您可以在 app / Http / Kernel.php 中看到它的功能。
以下是注册路线的更多可能性: https://laravel.com/docs/5.2/middleware#registering-middleware
答案 1 :(得分:0)
解决此问题的方法“X-CSRF-TOKEN”是将以下代码添加到主布局中,并继续正常进行ajax调用:
<meta name="csrf-token" content="{{ csrf_token() }}" />
<script type="text/javascript">
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
</script>