YII 2,不允许的方法(#405)

时间:2017-05-03 12:49:08

标签: post get yii2 http-status-code-405

  • 当我在GridView中删除记录时,我的主机上出现此错误 服务器
  • 本地工作没有问题。

我不明白的是:

  

错误说 - >方法不允许。这个网址只能处理   以下请求方法:POST。

当我查看我的代码时:

public function behaviors()
    {
        return [
            'verbs' => [
                'class' => VerbFilter::className(),
                'actions' => [
                    'delete' => ['POST'],
                ],
            ],
        ];
    }

ITS POST?!

当我更改为GET时,它可以正常工作,但也没有删除确认提示....

我有问题:

  • 为什么我收到消息 - >只允许发帖,当它是Post?
  • 当我更改为GET时,如何获得删除确认

对不起我的英文,非常感谢你的帮助。

enter image description here

1 个答案:

答案 0 :(得分:0)

您可能在控制器的VerbFilter方法中设置了behaviors,这阻止了要使用delete方法调用的GET动作。

类似的东西:

public function behaviors()
{
    return [
        'verbs' => [
            'class' => \yii\filters\VerbFilter::className(),
            'actions' => [
                'index'  => ['GET'],
                'view'   => ['GET'],
                'create' => ['GET', 'POST'],
                'update' => ['GET', 'PUT', 'POST'],
                'delete' => ['POST', 'DELETE'],
            ],
        ],
    ];
}

您可以了解有关VerFilter here

的更多信息

您必须选择:

  1. behaviors方法中删除VerbFilter
  2. 您可以将data-method="post"属性添加到链接中,这将触发POST而不是GET的请求。