Heim >PHP-Framework >YII >So verarbeiten Sie HTTP-Anfragen in yii2
VerbFilter
VerbFilter ist ein Filter für HTTP-Anfragemethoden. Seine Funktion besteht darin, zu definieren, worauf zugegriffen werden darf angegebene Aktionen. Wenn eine unzulässige HTTP-Anfrage eintrifft, wird ein HTTP 405-Fehler ausgegeben. Wenn keine zulässige Anforderungsmethode angegeben ist, sind alle Arten von Anforderungsmethoden standardmäßig zulässig. (Empfohlenes Lernen: yii-Tutorial)
Als nächstes probieren Sie die einfache Verwendung von VerbFilter aus.
Fügen Sie zunächst den Code in SiteController hinzu
public function actionInfo() { return \Yii::createObject([ 'class' => 'yii\web\Response', 'format' => \yii\web\Response::FORMAT_JSON, 'data' => [ 'message' => 'hello world', 'code' => 100, ], ]); }
Der obige Code gibt eine mit FORMAT_JSON formatierte Zeichenfolge zurück
Beim Zugriff über die URL http://localhost/basic/web/index.php?r=site/info wird erfolgreich
{"message":"hello world","code":100}
zurückgegeben. Fügen Sie dann Code in behaviours()
public function behaviors() { return [ ... ... 'verbs' => [ 'class' => VerbFilter::className(), 'actions' => [ 'logout' => ['post'], 'info' => ['post'], ], ], ]; }
hinzu Der obige Code verwendet den Filter VerbFilter in behaviours(), der angibt, dass beim Zugriff auf Aktionsinformationen nur die POST-Anforderungsmethode verwendet werden kann
Verwenden Sie zu diesem Zeitpunkt das RESTClient-Tool und wählen Sie die GET-Anforderungsmethode für den Zugriff aus . Mal wird ein 405-Fehler zurückgegeben
Ändern Sie den Code erneut
public function behaviors() { return [ ... ... 'verbs' => [ 'class' => VerbFilter::className(), 'actions' => [ 'logout' => ['post'], 'info' => ['post','get'], ], ], ]; }
Erlauben Sie den POST- und GET-Anforderungsmethoden, auf die Aktionsinformationen zuzugreifen, verwenden Sie das RESTClient-Tool für den Zugriff und rufen Sie den Rückgabewert ab Sie wählen die GET-Anfragemethode für den Zugriff aus.
{"message":"hello world","code":100}
Verwenden Sie zu diesem Zeitpunkt das Tool RESTClient, um die Anfrage per Post zu senden und einen 405-Fehler zurückzugeben.
Ändern Sie zu diesem Zeitpunkt die web.php-Datei
'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, ],
und fügen Sie diese beiden Codezeilen zu Polizei-Cookie-Schutz und CSRF-Präventionsstrategien hinzu
'enableCookieValidation' => false, 'enableCsrfValidation' => false,
senden Sie erneut eine Anfrage für Zugang per Post.
Hinweis: CSRF-Überprüfung
Da beim Zugriff auf die Webseite eine entsprechende versteckte Eingabe erfolgt:_csrf im Formular zur Überprüfung Kann die CSRF-Überprüfung nicht bestanden werden?
Das obige ist der detaillierte Inhalt vonSo verarbeiten Sie HTTP-Anfragen in yii2. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!