当前位置:  开发笔记 > 编程语言 > 正文

解决yii2.0 api post报错问题

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

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

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

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

推荐:《yii教程》

2、解决方法

(1)关闭_csrf验证

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

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

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

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

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

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

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

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

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有