Heim  >  Artikel  >  PHP-Framework  >  ThinkPHP6 domänenübergreifende Anforderungsverarbeitung: Lösung des Problems der Front-End- und Back-End-Trennung

ThinkPHP6 domänenübergreifende Anforderungsverarbeitung: Lösung des Problems der Front-End- und Back-End-Trennung

PHPz
PHPzOriginal
2023-08-13 09:10:435763Durchsuche

ThinkPHP6 domänenübergreifende Anforderungsverarbeitung: Lösung des Problems der Front-End- und Back-End-Trennung

ThinkPHP6 Cross-Domain-Anfrageverarbeitung: Lösung des Problems der Front-End- und Back-End-Trennung

Mit der kontinuierlichen Entwicklung von Internetanwendungen wird das Entwicklungsmodell der Front-End- und Back-End-Trennung immer mehr gemeinsam. Bei der Verwendung des ThinkPHP6-Frameworks zur Entwicklung von Anwendungen, die Front- und Back-Ends trennen, sind domänenübergreifende Anforderungen zu einem häufigen Problem geworden. In diesem Artikel wird erläutert, wie domänenübergreifende Anforderungen in ThinkPHP6 verarbeitet werden, und es werden entsprechende Codebeispiele bereitgestellt.

1. Was ist eine domänenübergreifende Anfrage?

Eine domänenübergreifende Anfrage bezieht sich auf eine Webanwendung, bei der der Front-End-Code über Ajax und andere Methoden Anfragen an das Back-End verschiedener Domänennamen oder Ports sendet. Aufgrund der Same-Origin-Richtlinieneinschränkungen des Browsers blockiert der Browser die Anfrage, wenn sich die angeforderte URL vom Domänennamen, Protokoll oder Port der aktuellen Seite unterscheidet.

2. Methoden zur Lösung domänenübergreifender Anfragen

  1. HTTP-Antwortheader festlegen

In ThinkPHP6 können Sie das Problem domänenübergreifender Anfragen lösen, indem Sie Antwortheader im Controller festlegen. In der Controller-Methode, die domänenübergreifende Anforderungen unterstützen muss, können Sie den Antwortheader mithilfe des folgenden Codes festlegen:

<?php
namespace appcontroller;

use thinkacadeRequest;

class Index
{
    public function index()
    {
        $allowOrigin = Request::header('origin');
        $allowHeaders = 'X-Requested-With, Content-Type, Authorization';
        $allowMethods = 'GET, POST, PUT, DELETE, PATCH, OPTIONS';

        header("Access-Control-Allow-Origin: ".$allowOrigin);
        header("Access-Control-Allow-Headers: ".$allowHeaders);
        header("Access-Control-Allow-Methods: ".$allowMethods);
    }
}

Im obigen Code legen Sie ihn als Zugriffskontrolle fest, indem Sie die Ursprungsheaderinformationen der Anforderung abrufen -Allow-Origin-Antwortkopf. Gleichzeitig können Sie auch die Header „Access-Control-Allow-Headers“ und „Access-Control-Allow-Methods“ festlegen, um andere benutzerdefinierte Anforderungsheader und Anforderungsmethoden zu unterstützen.

  1. Verwenden Sie Middleware zur Bearbeitung domänenübergreifender Anfragen

Zusätzlich zum Festlegen von Antwortheadern im Controller können Sie Middleware auch zur Bearbeitung domänenübergreifender Anfragen verwenden. In ThinkPHP6 ist das Erstellen einer domänenübergreifenden Middleware sehr einfach. Sie müssen lediglich die Datei Cors.php im Verzeichnis app/middleware erstellen und den entsprechenden Code hineinschreiben.

<?php
namespace appmiddleware;

class Cors
{
    public function handle($request, Closure $next)
    {
        $allowOrigin = $request->header('origin');
        $allowHeaders = 'X-Requested-With, Content-Type, Authorization';
        $allowMethods = 'GET, POST, PUT, DELETE, PATCH, OPTIONS';

        header("Access-Control-Allow-Origin: ".$allowOrigin);
        header("Access-Control-Allow-Headers: ".$allowHeaders);
        header("Access-Control-Allow-Methods: ".$allowMethods);

        return $next($request);
    }
}

Als nächstes registrieren Sie die Middleware in der Datei app/middleware.php:

<?php
// 其他中间件...
ppmiddlewareCors::class,

Nach Abschluss der Registrierung wird die Middleware vor allen Anfragen verarbeitet und fügt automatisch Antwortheader hinzu, um domänenübergreifende Anfragen zu unterstützen.

3. Überprüfen Sie die domänenübergreifende Anforderungsverarbeitung.

Um zu überprüfen, ob die domänenübergreifende Anforderungsverarbeitung wirksam geworden ist, können Sie die Entwicklertools des Browsers verwenden, um den Antwortheader der Anforderung anzuzeigen. Öffnen Sie die Entwicklertools Ihres Browsers (normalerweise durch Drücken der F12-Taste), wählen Sie die Registerkarte „Netzwerk“ und stellen Sie eine Testanfrage. Sie sollten Header-Informationen wie „Access-Control-Allow-Origin“, „Access-Control-Allow-Headers“ und „Access-Control-Allow-Methods“ im Antwortheader sehen können.

4. Zusammenfassung

In diesem Artikel wird erläutert, wie domänenübergreifende Anfragen in ThinkPHP6 verarbeitet werden. Durch das Festlegen von HTTP-Antwortheadern oder die Verwendung von Middleware können Sie das Problem domänenübergreifender Anforderungen in Front-End- und Back-End-Trennanwendungen problemlos lösen. Wählen Sie in der tatsächlichen Entwicklung die geeignete Methode entsprechend den Anforderungen aus und führen Sie die entsprechende Konfiguration und flexible Verarbeitung gemäß bestimmten Szenarien durch.

Ich hoffe, dieser Artikel hilft Ihnen beim Umgang mit domänenübergreifenden Anforderungen, wenn Sie das ThinkPHP6-Framework zum Entwickeln von Front-End- und Back-End-Trennanwendungen verwenden. Wenn Sie Fragen oder Anregungen haben, hinterlassen Sie bitte eine Nachricht zur Diskussion.

Das obige ist der detaillierte Inhalt vonThinkPHP6 domänenübergreifende Anforderungsverarbeitung: Lösung des Problems der Front-End- und Back-End-Trennung. 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