Laravel提交POST请求报错
2024-10-08 09:17:23
提交POST请求出现如下错误:
The page has expired due to inactivity Please refresh and try again
这是由于在Laravel框架中有此要求:
任何指向 web 中 POST, PUT 或 DELETE 路由的 HTML 表单请求都应该包含一个 CSRF 令牌(CSRF token),否则,这个请求将会被拒绝。
解决办法 1: 加上 CSRF token
<form method="POST" action="/profile">
{{ csrf_field() }}
...
</form>
也可以最新写法
<form method="POST" action="/profile">
@csrf
...
</form>
如果是AJAX提交:
在页面头部加上csrf-token:
<meta name="csrf-token" content="{{ csrf_token() }}">
提交headers中增加 X-CSRF-TOKEN:
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
解决办法 2: 移除 CSRF token
也可以在指定页面移除CSRF保护:
/app/Http/Middleware/VerifyCsrfToken.php
<?php namespace App\Http\Middleware; use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware; class VerifyCsrfToken extends Middleware
{
/**
* The URIs that should be excluded from CSRF verification.
*
* @var array
*/
protected $except = [
'stripe/*',
'http://example.com/foo/bar',
'http://example.com/foo/*',
];
}
最新文章
- Android动画效果之自定义ViewGroup添加布局动画
- SQL 行转列和列转行
- 多态 oc c++ 与oc category
- linux wget 命令用法详解(附实例说明)
- linux 查看程序是否运行
- __construct()和__initialize()
- 重载VerifyRenderingInServerForm
- Code (组合数)
- linux之SQL语句简明教程---COUNT
- linux入侵控制与痕迹清理
- 记一次SAP新业务开发项目
- Mac上搭建基于Github的Hexo博客
- web开发中如何使用引用字体
- 小程序二层嵌套循环数据:微信小程序开发(交流QQ群:604788754)
- MT4 取K线
- wifidog源码分析 - 客户端检测线程
- jupyter命令把.ipynb文件转化为.py文件
- L1-025 正整数A+B(15)(思路+测试点分析)
- HDU 1404 Digital Deletions (暴力博弈)
- NOI2018旅游记