2019-10-18 17:29:54 1728次浏览 2条回答 0 悬赏 10 金钱

在 IndexController.php

public function behaviors()
{
    return [
        'access' => [
            'class' => AccessControl::className(),
            'only' => ['login', 'logout'],
            'rules' => [
                [
                    'actions' => ['login'],
                    'allow' => true,
                    'roles' => ['?'],
                ],
                [
                    'actions' => ['logout'],
                    'allow' => true,
                    'roles' => ['@'],
                ],
            ],
        ],
        'verbs' => [
            'class' => VerbFilter::className(),
            'actions' => [
                'logout' => ['post'],
            ],
        ],
    ];
}

public function logout()
{
    Yii::$app->user->logout();
    Yii::$app->response->format = Response::FORMAT_JSON;
    return ['status' => 'Success', 'code' => 0, 'msg' => 'ok'];
}

在 web.php 里

'urlManager' => [
    'enablePrettyUrl' => true,
    // 'enableStrictParsing' => true,
    'showScriptName' => false,
    'rules' => [
        'logout' => 'index/logout',
    ],
],

访问网址 www.域名.com/logout

前端通过 ajax post 过去返回 404,即使 verbs 全删了,get 访问也是 404

最佳答案

  • 回答于 2019-10-18 22:39 举报

    404是环境配置问题。

    一般都是由web server导致的。

    比如 apache 没有 .htaccess 文件
    比如 nginx 没有 配置重写规则

    剩下一种就是真的没有找到那个页面。

您需要登录后才可以回答。登录 | 立即注册
醉挽清风
见习主管

醉挽清风 南京

注册时间:2018-07-03
最后登录:2022-09-06
在线时长:15小时38分
  • 粉丝1
  • 金钱180
  • 威望10
  • 积分430

热门问题