Heim  >  Artikel  >  PHP-Framework  >  Ein Artikel erklärt ausführlich, wie thinkphp6 domänenübergreifende Probleme durch globale Middleware löst

Ein Artikel erklärt ausführlich, wie thinkphp6 domänenübergreifende Probleme durch globale Middleware löst

藏色散人
藏色散人nach vorne
2021-09-19 16:49:574699Durchsuche

Die folgende thinkphp-Frameworktutorial-Kolumne stellt Ihnen vor, wie thinkphp6 domänenübergreifende Probleme durch globale Middleware löst. Ich hoffe, dass es für Freunde in Not hilfreich sein wird!

tp6 löst domänenübergreifende Probleme durch globale Middleware.

Die offizielle Website von tp6 bietet eine domänenübergreifende Auflösungsmethode, die jedoch nicht verwendet werden kann, wenn ich sie direkt verwende. (Vielleicht ist meine Haltung falsch).

Das Frontend sendet eine Ajax-Anfrage in Hbuildert und es kommt zu einer domänenübergreifenden Übertragung.

Anfrage abrufen: kann über Hintergrundeinstellungen gelöst werden.
'Access-Control-Allow-Origin: *'。
Post-Anfrage: OPTIONS-Anfrage wird durchgeführt. Fügen Sie der Ajax-Anfrage eine Header-Information hinzu.
header:{
    'Content-Type':'application/x-www-form-urlencoded'
}

Middleware definieren

<?php declare (strict_types = 1);

namespace app\middleware;
use think\Response;

/**
 * 全局跨域请求处理
 * Class CrossDomain
 * @package app\middleware
 */

class CrossDomain
{
    public function handle($request, \Closure $next)
    {
        header(&#39;Access-Control-Allow-Origin: *&#39;);
        header(&#39;Access-Control-Max-Age: 1800&#39;);
        header(&#39;Access-Control-Allow-Methods: GET, POST, PATCH, PUT, DELETE&#39;);
        header(&#39;Access-Control-Allow-Headers: Authorization, Content-Type, If-Match, If-Modified-Since, If-None-Match, If-Unmodified-Since, X-CSRF-TOKEN, X-Requested-With, Token&#39;);
        if (strtoupper($request->method()) == "OPTIONS") {
            return Response::create()->send();
        }

        return $next($request);
    }
}

Fügen Sie die Middleware hinzu, die wir in middleware.php definiert haben

Ein Artikel erklärt ausführlich, wie thinkphp6 domänenübergreifende Probleme durch globale Middleware löst

Dann funktioniert es domänenübergreifend!

Das obige ist der detaillierte Inhalt vonEin Artikel erklärt ausführlich, wie thinkphp6 domänenübergreifende Probleme durch globale Middleware löst. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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