Yii中的错误400

时间:2015-07-23 12:52:48

标签: php yii

我有删除记录的问题。每次我点击管理页面上的删除按钮,它都会触发"错误400.您的请求无效"

以下是删除方法

public function actionDelete($id)
    {
         if(Yii::app()->request->isPostRequest){

            $this->loadModel($id)->delete();

            // if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser
                if(!isset($_GET['ajax'])){
                    $this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('admin'));
                }

         }
         else{
            throw new CHttpException(400,'Invalid request. Please do not repeat this request again.');
         }

    }

该代码有什么问题?

4 个答案:

答案 0 :(得分:1)

您的删除方法仅响应POST请求。确保您的按钮设置为向控制器/操作提交POST请求

答案 1 :(得分:1)

我能够解决这个问题。你得到"错误400的原因。你的请求无效"删除时,您附加了多个jquery插件。默认情况下,Yii注册jquery库。

这是文件

**<script type="text/javascript" src="<?php echo Yii::app()->theme->baseUrl; ?>/asset/js/lib/jquery-1.11.2.js"></script>**

避免添加另一个jquery lib。

希望它可以帮助别人。

答案 2 :(得分:0)

如果你想删除一些使用Ajax删除的记录,请关注。

这是我的删除按钮,我将其设置为ajax链接

echo CHtml :: ajaxLink(&#39;删除&#39;,$ this-&gt; createUrl(&#39; / controller / action / id /&#39; .123),数组(&#39;成功&#39; =&gt;&#39; rowdelete(&#39; .123。&#39;)&#39;,&#39;输入&#39; =&gt;&#39; GET&#39;) ,数组(&#39;确认&#39; =&gt;&#34;您确定要删除。&#34;));

现在在控制器中使用默认操作

public function actionDelete($ id){         $这 - &GT; loadModel($ ID) - &GT;删除();

    // if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser
    if (!isset($_GET['ajax'])){
        Yii::app()->user->setFlash('CityDel', 'City Deleted Successfully');
        $this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('admin'));
    }
}

答案 3 :(得分:0)

您可能需要在控制器中取消注释或删除由gii生成的行:

'PostOnly + delete',//我们只允许通过POST请求删除