Home > Backend Development > PHP Tutorial > yii2生成URL出现405怎么回事

yii2生成URL出现405怎么回事

WBOY
Release: 2016-06-06 20:36:35
Original
1820 people have browsed it

在使用Yii时候出现如下情况,
在模板页面使用<a href="<?=%20Url::toRoute('site/logout');?>">退出后台</a>
解析后网页生成的代码的URL地址是 localhost/yii2/backend/index.php?r=site/logout,地址是对的,访问的时候出现如下:
Method Not Allowed (#405) Method Not Allowed. This url can only handle the following request methods: POST. The above error occurred while the Web server was processing your request. Please contact us if you think this is a server error. Thank you.

请问为啥会出现405?哪里配置错了?配置文件里面没有配置路由
通过firebug发现前台的是可以的,而且是POST提交。而通过url生成的访问就不对了?求助

回复内容:

在使用Yii时候出现如下情况,
在模板页面使用<a href="<?=%20Url::toRoute('site/logout');?>">退出后台</a>
解析后网页生成的代码的URL地址是 localhost/yii2/backend/index.php?r=site/logout,地址是对的,访问的时候出现如下:
Method Not Allowed (#405) Method Not Allowed. This url can only handle the following request methods: POST. The above error occurred while the Web server was processing your request. Please contact us if you think this is a server error. Thank you.

请问为啥会出现405?哪里配置错了?配置文件里面没有配置路由
通过firebug发现前台的是可以的,而且是POST提交。而通过url生成的访问就不对了?求助

肯定是配置site/logout这个action的verbs了,提示很明显,这个action只接受通过POST发送的请求!
所以你检查下siteController 下的behaviors 是不是配置了

<code>'verb' => [
    'class' => VerbFilter::className(),
    'actions' => [
        'logout' => ['post'],
    ],
],
</code>
Copy after login

如果允许GET访问的话,那么可以改成:

<code>'verb' => [
    'class' => VerbFilter::className(),
    'actions' => [
        'logout' => ['get'], //当然可以是是 ['get', 'post'],同时支持POST和GET两种方式访问
    ],
],
</code>
Copy after login
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template