>有时,不经常出现错误消息:"方法不允许 yii2 这个 url 只能处理...: POST
我在函数行为中找到了这样的代码:
'verbs' => [
'class' => VerbFilter::className(),
'actions' => [
'delete' => ['post']
它会出现此错误消息以及为什么有时会(不经常(发生此错误?
附加 真的,我很抱歉忘记指出 iframe 使用的所有内容(页面在 iframe 窗口中打开并通过 url 应用于 yii2,并在删除操作完成后 - 被重定向回来(,可能是用户被注销,但不理解它。
控制器后控制器作为获取方法接收:删除网址为 GET,_csrf 作为 POST
-
仅允许通过 Post 执行删除操作。 ($_POST(。为了更高的安全性
通过get
和post
方法访问的示例:不建议用于Delete
操作。'verbs' => [ 'class' => VerbFilter::className(), 'actions' => [ 'delete' => ['post','get'], ], ],
更新:
并不总是错误 #405,可能是 #403 和
......- Cookie 和会话已过期
当您在网站上打开多个浏览器选项卡(或窗口(并且会话过期时。您通过窗口(或与其他用户(登录。在这种情况下,通过单击其他打开的选项卡和窗口(浏览器(中的logut
来引发异常。
这是因为 CSRF 保护仅适用于不安全的请求方法,如 PUT、POST 或 DELETE。这就是为什么为了保持安全,您的应用程序永远不应该使用 GET 请求来更改应用程序状态。
如果按标签
<a>
或 nav 中的url
注销设置如下:'data-method' => 'post'
修改并尝试使用表单和...
例:
Html::beginForm(['.../logout'], 'post')
. Html::submitButton(
'Logout (' . Yii::$app->user->identity->username . ')',
['class' => 'btn btn-link']
)
. Html::endForm()