报错内容
当使用post方式提交数据时,报下面错误
The page has expired due to inactivity.
Please refresh and try again.
解决方法
方法 1.在form表单中添加如下的隐藏域代码
<input type="hidden" name="_token" value="{{ csrf_token() }}" />
方法 2.在form表单中添加 csrf_field
(与上述解决方法功能一致)
{!! csrf_field() !!}
方法 3.注释 Kernel.php 代码
打开 app\Http\Kernel.php,在文件中注释掉下面的代码
\App\Http\Middleware\VerifyCsrfToken::class
方法 4. 修改handle()方法
打开 \app\Http\Middleware\VerifyCsrfToken.php,添加或修改 handle()方法如下:
public function handle($request, \Closure $next)
{
// 使用CSRF
//return parent::handle($request, $next);
// 禁用CSRF
return $next($request);
}
若是ajax请求,则使用方式如下:
<meta name="csrf-token" content="{{ csrf_token() }}">
<script type="text/javascript">
$.ajax({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
url: "localhost/home/login/dologin",
type: "POST",
data: {
"phone": phone,
"password": password,
},
dataType: "json",
success: function (resp) {
if (resp) {
alert("result");
} else {
alert("error")
}
},
error: function (xhr, errorType, error) {
alert('failed');
},
});
</script>