php教程 解决yii2.0 api post报错问题

 所属分类:php教程

 浏览:136次-  评论: 0次-  更新时间:2022-06-01
描述:这是一篇php教程 解决yii2.0 api post报错问题的说明内容,如果你想学习查找类似的文章,可以进入php教程获得最新优质资料。 yii2.0 ap...
这是一篇php教程 解决yii2.0 api post报错问题的说明内容,如果你想学习查找类似的文章,可以进入php教程获得最新优质资料。

yii2.0 api post报错的解决办法:1、关闭“_csrf”验证;2、在表单中添加隐藏域;3、在Ajax中添加“_csrf”数据字段;4、将“post”提交改为“get”。

Yii2.0中POST提交数据时出现400请求错误

1、发现问题所在的方法

使用Chrome浏览器,检查错误,到network查看response:

Bad Request (#400): Unable to verify your date submission.   (无法验证提交的数据)

推荐:《yii教程》

2、解决方法

(1)关闭_csrf验证

public function init(){
    $this->enableCsrfValidation = false;
}

(2)在表单中添加隐藏域

<input name="_csrf" type="hidden" id="_csrf" value="<?= Yii::$app->request->csrfToken ?>">

如果我们使用的是Yii框架的助手类生成表单,它会自带_csrf字段,不需要我们额外地添加隐藏域。

(3)Ajax中添加_csrf数据字段

$.ajax({
             url: 'demo.php',//发送验证码的url
             type: 'post',
             data: {
                 _csrf:"<?=Yii::$app->request->csrfToken?>",
                 mobile:123
             },
             success: function(){
                     alert('发送成功');
             },
             error: function(){
                 alert('发送失败');
                 return false;
             }
         })

(4)最简单的方法,将post提交改为get

说明:Yii框架有自带的数据验证功能,如果我们post提交的数据不带有和框架对应的_csrf相同的验证数据字段,提交的数据会被视为不可信的字段,便会出现400错误。

以上就是解决yii2.0 api post报错问题的详细内容,更多请关注zzsucai.com其它相关文章!

 标签:
积分说明:注册即送10金币,每日签到可获得更多金币,成为VIP会员可免金币下载! 充值积分充值会员更多说明»

讨论这个素材(0)回答他人问题或分享使用心得奖励金币

〒_〒 居然一个评论都没有……

表情  文明上网,理性发言!