Heim > PHP-Framework > Denken Sie an PHP > Wie thinkphp domänenübergreifende Anfragen abschließt

Wie thinkphp domänenübergreifende Anfragen abschließt

PHPz
Freigeben: 2023-04-13 16:22:23
nach vorne
3371 Leute haben es durchsucht

1. Header-Klasse

Im thinkphp-Framework können Sie die Header-Klasse verwenden, um den Antwortheader festzulegen und die Funktion domänenübergreifender Anforderungen zu erreichen. Die spezifische Methode besteht darin, der Controller-Methode den folgenden Code hinzuzufügen:

header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");
Nach dem Login kopieren

Unter anderem bedeutet die erste Codezeile, dass domänenübergreifende Anforderungen aus allen Quellen zugelassen werden, oder sie kann auf eine bestimmte Quelle festgelegt werden ; Die zweite Codezeile bedeutet, dass von domänenübergreifenden Anforderungen übertragene Anforderungsheaderinformationen zugelassen werden. Nachdem Sie dies eingerichtet haben, können Sie grundlegende domänenübergreifende Anforderungen implementieren.

2. Bibliotheken von Drittanbietern

Zusätzlich zur Verwendung der Header-Klasse zum Einrichten domänenübergreifender Anforderungen können Sie auch Drittanbieter verwenden -Party-Bibliotheken, um diesen Prozess zu vereinfachen. Im Folgenden wird die Cors-Erweiterung der gängigen CORS-Bibliothek (Cross-Origin Resource Sharing) als Beispiel verwendet, um vorzustellen, wie eine Bibliothek eines Drittanbieters zum Implementieren domänenübergreifender Anforderungen verwendet wird.

  1. Cors-Erweiterung installieren

Öffnen Sie das Befehlszeilenfenster und führen Sie den folgenden Befehl aus:

composer require topthink/think-cors
Nach dem Login kopieren
# 🎜🎜#
  1. Cors-Erweiterung konfigurieren

Erstellen Sie im Konfigurationsordner des Projekts eine cors.php-Datei und geben Sie Folgendes ein Code: # 🎜🎜#
<?php

return [
    // 允许的请求域名
    &#39;allow_origin&#39;      => [&#39;*&#39;],
    // 允许的请求头信息
    &#39;allow_headers&#39;     => &#39;Origin, X-Requested-With, Content-Type, Accept&#39;,
    // 允许的请求方法
    &#39;allow_methods&#39;     => &#39;GET, POST, PUT, DELETE, PATCH&#39;,
    // 是否允许发送cookie
    &#39;allow_credentials&#39; => true,
    // 跨域请求缓存时间
    &#39;max_age&#39;           => 3600,
];
Nach dem Login kopieren

Darunter stellt $allow_origin den zulässigen Anforderungsdomänennamen dar, der auf einen bestimmten Domänennamen oder das Platzhalterzeichen „*“ festgelegt werden kann; $allow_headers stellt die zulässigen Anforderungsheaderinformationen dar, und $allow_methods stellt die zulässigen Anfragemethoden dar, $allow_credentials gibt an, ob Cookies gesendet werden dürfen, $max_age gibt die domänenübergreifende Cache-Zeit für Anfragen an.

    Ändern Sie die Konfigurationsdatei
  1. Suchen Sie im Konfigurationsordner des Projekts die Datei app.php und wie folgt konfigurieren:
return [
    // ...
    &#39;middleware&#39; => [
        // ...
        \think\middleware\Cors::class,
    ],
];
Nach dem Login kopieren

    Call cors extension
  1. In der Controller-Methode, die domänenübergreifend erfordert Bei Anfragen können Sie die Methode direkt in der CORS-Erweiterung aufrufen, um die Einstellung domänenübergreifender Anfragen zu realisieren:
use think\facade\Cors;

public function index() {
    Cors::allowAllOrigin();
    return json([&#39;code&#39; => 200, &#39;msg&#39; => &#39;success&#39;]);
}
Nach dem Login kopieren

Nachdem Sie diese Einstellung vorgenommen haben, können Sie domänenübergreifende Anfragen realisieren.

Das obige ist der detaillierte Inhalt vonWie thinkphp domänenübergreifende Anfragen abschließt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
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