Heim > PHP-Framework > YII > Hauptteil

So verarbeiten Sie HTTP-Anfragen in yii2

(*-*)浩
Freigeben: 2019-11-05 09:42:49
Original
3953 Leute haben es durchsucht

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,
            ],
        ]);
    }
Nach dem Login kopieren

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}
Nach dem Login kopieren
Nach dem Login kopieren

zurückgegeben. Fügen Sie dann Code in behaviours()

public function behaviors()
    {
        return [
            ... ...
            'verbs' => [
                'class' => VerbFilter::className(),
                'actions' => [
                    'logout' => ['post'],                   
                    'info' => ['post'],
                ],
            ],
        ];
    }
Nach dem Login kopieren

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'],
                ],
            ],
        ];
    }
Nach dem Login kopieren

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}
Nach dem Login kopieren
Nach dem Login kopieren

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,
        ],
Nach dem Login kopieren

und fügen Sie diese beiden Codezeilen zu Polizei-Cookie-Schutz und CSRF-Präventionsstrategien hinzu

 'enableCookieValidation' => false,
 'enableCsrfValidation' => false,
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!