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

Wie thinkphp domänenübergreifende Anfragen abschließt

PHPz
PHPznach vorne
2023-04-13 16:22:233331Durchsuche

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");

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
# 🎜🎜#
  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,
];

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,
    ],
];

    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;]);
}

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen