Yii2 行为动词动作 HTTP 方法:发布和获取

  • 本文关键字:方法 获取 HTTP Yii2 yii2
  • 更新时间 :
  • 英文 :


>有时,不经常出现错误消息:"方法不允许 yii2 这个 url 只能处理...: POST

我在函数行为中找到了这样的代码:

'verbs' => [
'class' => VerbFilter::className(),
'actions' => [
'delete' => ['post']

它会出现此错误消息以及为什么有时会(不经常(发生此错误?

附加 真的,我很抱歉忘记指出 iframe 使用的所有内容(页面在 iframe 窗口中打开并通过 url 应用于 yii2,并在删除操作完成后 - 被重定向回来(,可能是用户被注销,但不理解它。

控制器后控制器作为获取方法接收:删除网址为 GET,_csrf 作为 POST

  1. 仅允许通过 Post 执行删除操作。 ($_POST(。为了更高的安全性
    通过getpost方法访问的示例:不建议用于Delete操作。

    'verbs' => [
    'class' => VerbFilter::className(),
    'actions' => [
    'delete' => ['post','get'],
    ],
    ],
    

更新:

并不总是错误 #405,可能是 #403 和

......
  1. Cookie 和会话已过期
    当您在网站上打开多个浏览器选项卡(或窗口(并且会话过期时。您通过窗口(或与其他用户(登录。在这种情况下,通过单击其他打开的选项卡和窗口(浏览器(中的logut来引发异常。

这是因为 CSRF 保护仅适用于不安全的请求方法,如 PUT、POST 或 DELETE。这就是为什么为了保持安全,您的应用程序永远不应该使用 GET 请求来更改应用程序状态。

  1. 如果按标签<a>或 nav 中的url注销设置如下:

    'data-method' => 'post'

修改并尝试使用表单和...
例:

Html::beginForm(['.../logout'], 'post')
. Html::submitButton(
'Logout (' . Yii::$app->user->identity->username . ')',
['class' => 'btn btn-link']
)
. Html::endForm()

最新更新