Yii2.0 报错 "Unable to verify your data submission"
在Yii 2.0框架开发中, 使用POST方式提交数据会得到错误
Bad Request (#400)
Unable to verify your data submission.
通过分析发现是在表单中缺少了csrf部分数值, Yii 2.0 默认打开 csrf校验, 所以可以在form区域找到如下隐藏内容
<input type="hidden" name="_csrf" value="LmZwR0lqU2RbMy8pcEcmV2lRJgA9IRwTSSkScDg7YzEDLAkWBSM8Vg==">
那么修复的办法也变得非常简单, 只需要在你的form区域添加如下内容即可
<input type="hidden" name="_csrf" value="<?= Yii::$app->request->csrfToken; ?>">
值得说明的是 Yii::$app->request->csrfToken 会直接生成用于校验的csrfToken
{ 其他做法 }
1.关闭指定action csrf校验 - 不推荐, 仅限特殊情况下使用
在指定action里添加如下内容, 取消csrf校验
Yii::$app->controller->enableCsrfValidation = false;
2. 关闭指定controller下全部action的csrf校验, 对所有action 生效 - 不推荐, 仅限特殊情况下使用
在controller里添加如下内容
public $enableCsrfValidation = false;
{ Lee Say }
请尽量保持 Yii 2.0框架的csrf校验开启状态, 对整个程序都是有益的.
留言