VerbFilter
VerbFilter は HTTP リクエスト メソッドのフィルターです。その機能は、指定されたアクセスに対して許可されるアクセスを定義することです。 HTTPリクエストにおいて、許可されていないHTTPリクエストが来た場合はHTTP 405エラーがスローされます。 許可されるリクエスト メソッドを指定しない場合、デフォルトですべてのタイプのリクエスト メソッドが許可されます。 (推奨学習: yii チュートリアル )
次に、VerbFilter の簡単な使用法を試してください。
まず、SiteController にコードを追加します。
public function actionInfo() { return \Yii::createObject([ 'class' => 'yii\web\Response', 'format' => \yii\web\Response::FORMAT_JSON, 'data' => [ 'message' => 'hello world', 'code' => 100, ], ]); }
上記のコードは、FORMAT_JSON を使用してフォーマットされた文字列を返します
URL を使用します: http://localhost/basic/web/index.php?r=site/info アクセスすると、正常に返されます
{"message":"hello world","code":100}
次に、behaviors()
public function behaviors() { return [ ... ... 'verbs' => [ 'class' => VerbFilter::className(), 'actions' => [ 'logout' => ['post'], 'info' => ['post'], ], ], ]; }
public function behaviors() { return [ ... ... 'verbs' => [ 'class' => VerbFilter::className(), 'actions' => [ 'logout' => ['post'], 'info' => ['post','get'], ], ], ]; }
{"message":"hello world","code":100}
'request' => [ // !!! insert a secret key in the following (if it is empty) - this is required by cookie validation 'cookieValidationKey' => '4mWc84oNsYJpc-nnnjMwyOOiCTgcThig', 'enableCookieValidation' => false, 'enableCsrfValidation' => false, ],
'enableCookieValidation' => false, 'enableCsrfValidation' => false,
注: CSRF 検証
Web ページにアクセスすると、検証用のフォームに対応する非表示の input:_csrf が存在するため、検証が行われた場合のみ、 Web ページへのアクセス (コマンド ライン CURL リクエストなどの Web フォーム経由ではない) ではなく、アクセス; は csrf 検証に合格できません。以上がyii2 で http リクエストを処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。