Heim  >  Artikel  >  PHP-Framework  >  So vervollständigen Sie domänenübergreifende Anfragen in thinkphp

So vervollständigen Sie domänenübergreifende Anfragen in thinkphp

PHPz
PHPzOriginal
2023-04-12 09:04:331036Durchsuche

Mit der Popularität der Front-End- und Back-End-Trennungsentwicklung sind domänenübergreifende Anforderungen zu einer immer häufigeren Anforderung geworden. Wie implementiert man bei der Entwicklung mit dem Thinkphp-Framework domänenübergreifende Anforderungshintergrund-Controller-Methoden? In diesem Artikel wird erläutert, wie Sie die Header-Klasse und die Bibliotheken von Drittanbietern, die im Lieferumfang des thinkphp-Frameworks enthalten sind, verwenden, um domänenübergreifende Anforderungen auszuführen.

1. Header-Klasse

Im thinkphp-Framework können Sie die Header-Klasse verwenden, um den Antwortheader festzulegen, um domänenübergreifende Anforderungsfunktionen zu implementieren. 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 diesen gibt die erste Codezeile an, dass domänenübergreifende Anforderungen aus allen Quellen zulässig sind, und kann auch auf eine bestimmte Quelle festgelegt werden Der Code gibt an, dass Anfragen, die über domänenübergreifende Anfragen erfolgen, zulässig sind. 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 Bibliotheken von Drittanbietern verwenden, 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 den folgenden Code ein:

<?php

return [
    // 允许的请求域名
    &#39;allow_origin&#39;      => ['*'],
    // 允许的请求头信息
    'allow_headers'     => 'Origin, X-Requested-With, Content-Type, Accept',
    // 允许的请求方法
    'allow_methods'     => 'GET, POST, PUT, DELETE, PATCH',
    // 是否允许发送cookie
    'allow_credentials' => true,
    // 跨域请求缓存时间
    'max_age'           => 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, $allow_methods stellt die zulässigen Anforderungsmethoden dar und $allow_credentials gibt an, ob das Senden von Cookies erlaubt ist, $max_age stellt die domänenübergreifende Cache-Zeit dar.

  1. Ändern Sie die Konfigurationsdatei

Suchen Sie im Konfigurationsordner des Projekts die Datei app.php. Die Konfiguration lautet wie folgt:

return [
    // ...
    'middleware' => [
        // ...
        \think\middleware\Cors::class,
    ],
];
  1. Cors-Erweiterung aufrufen

In der Controller-Methode, die domänenübergreifend erforderlich ist Anfragen können Sie direkt aufrufen. Methoden in der CORS-Erweiterung, um domänenübergreifende Anforderungseinstellungen zu implementieren:

use think\facade\Cors;

public function index() {
    Cors::allowAllOrigin();
    return json(['code' => 200, 'msg' => 'success']);
}

Nachdem Sie auf diese Weise eingerichtet haben, können domänenübergreifende Anforderungen implementiert werden.

Zusammenfassend lässt sich sagen, dass Sie zum Implementieren der domänenübergreifenden Anforderungshintergrund-Controller-Methode des Thinkphp-Frameworks die Header-Klasse oder eine Bibliothek eines Drittanbieters verwenden können. Verwenden Sie die Header-Klasse, um Antwort-Header-Informationen manuell festzulegen, und verwenden Sie Bibliotheken von Drittanbietern, um den Einstellungsprozess zu vereinfachen. Die spezifische Implementierungsmethode kann entsprechend Ihren eigenen Anforderungen ausgewählt werden.

Das obige ist der detaillierte Inhalt vonSo vervollständigen Sie domänenübergreifende Anfragen in thinkphp. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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