YII 2,不允许的方法 (#405)
Posted
技术标签:
【中文标题】YII 2,不允许的方法 (#405)【英文标题】:YII 2, Method Not Allowed (#405) 【发布时间】:2017-10-01 07:30:39 【问题描述】: 当我在 GridView 中删除记录时,我的主机出现此错误 服务器。 本地工作没有问题。我不明白的是:
错误说 -> 方法不允许。这个网址只能处理 以下请求方法:POST。
当我查看我的代码时:
public function behaviors()
return [
'verbs' => [
'class' => VerbFilter::className(),
'actions' => [
'delete' => ['POST'],
],
],
];
它的帖子?!
当我更改为 GET 时,它可以正常工作,但也没有删除确认提示......
我有问题:
为什么我收到一条消息 -> 只允许发布,当它是发布时? 当我更改为 GET 时,如何获得删除确认抱歉我的英语不好,非常感谢您的帮助。
【问题讨论】:
你确定本地和远程主机是一样的吗?远程主机上没有特殊的 Web 服务器配置?你能告诉我们调用删除 URL 的代码吗? 检查 fpr 两个配置(本地主机和服务器)文件..你能不能有不同的值..让我知道 是否有任何 javascript 错误? 在此处发布您的查看页面。 我遇到了同样的错误,它在我的本地主机上运行良好,实际上在我的测试服务器上运行良好,但是当我上传到我的客户端服务器时,我遇到了同样的问题。 【参考方案1】:您可能在控制器 behaviors
方法中设置了一个 VerbFilter
方法,这会阻止使用 GET
方法调用 delete
操作。
类似的东西:
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的信息
你必须选择:
-
从
behaviors
方法中删除 VerbFilter
您可以将data-method="post"
属性添加到您的链接中,这将触发POST
请求而不是GET
。
【讨论】:
以上是关于YII 2,不允许的方法 (#405)的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET Core 2.2 WebAPI 405 方法不允许
discord.errors.HTTPException:405 方法不允许(错误代码:0):405:方法不允许
在 Laravel 5.2 上路由文件路径时出现 405(不允许的方法)
WebApi 2 HttpPut,HttpDelete,HttpPost无法正常工作-HTTP错误405.0 - 方法不允许