Heim > Artikel > Backend-Entwicklung > Eine Einführung in die Methode zur Steuerung domänenübergreifender Domänennamen und zur Ermöglichung domänenübergreifender Bild-Uploads im PHP-Backend
Der Inhalt dieses Artikels befasst sich mit der Methode zur Steuerung domänenübergreifender Domänennamen und dem Ermöglichen des domänenübergreifenden Hochladens von Bildern über das PHP-Backend. Ich hoffe, dass dies der Fall ist hilfreich sein.
Oft müssen domänenübergreifende Probleme bewältigt werden, und das Front-End muss direkter erfolgen
Wählen Sie entweder die asynchrone Ajax-Übermittlung, XML oder JSONP oder die Formularübermittlung
jsonp kann im Grunde alles verarbeiten. Es gibt einige domänenübergreifende Probleme, aber das Problem ist auch relativ offensichtlich. Es kann nur über die get-Methode
übermittelt werden, und jsonp sendet die Anfrage, indem es Parameter in die URL einfügt 🎜>
Allerdings haben alle Browser URL-Längenbeschränkungen, verschiedene Browser haben unterschiedliche LängenbeschränkungenWenn Sie einen großen Absatz mit Inhalten einreichen müssen, z. B. einen Artikel, wenn Sie JSONP und die Länge verwenden Wenn die Länge überschritten wird, können Sie nur teilen und senden Es ist sehr problematisch und am Ende ist es nicht korrekt. Die Sicherheit hat einige AuswirkungenUnd Axiox unterstützt JSONP derzeit nicht. Obwohl es welche gibt LösungsmöglichkeitenInsbesondere beim Hochladen von Bildressourcen kann es mit Methoden wie jsonp nicht gut implementiert werdenSzenarien, die das Hochladen von domänenübergreifenden Bildern erfordern
Natürlich ist es am besten, nicht domänenübergreifend zu arbeiten, aber bei den meisten Projekten sind derzeit Front-End und Back-End getrennt.Statische Ressourcen und Schnittstellen sind unterschiedliche Domänennamen bzw. Domänennamen der zweiten Ebene beinhaltet domänenübergreifendes HochladenWenn es sich um einen Ressourcen-Upload handelt, sind beim domänenübergreifenden Ausführen das Backend Access-Control-Allow-Origin und die aktuelle Anforderung erforderlich. Das Gleiche wie bei Origin kann nicht auf * gesetzt werden
php-Lösung
Wenn es sich um eine herkömmliche Datenanfrage handelt, dann setzt das Backend Access-Control-Allow-Origin direkt auf * Gutheader('Access-Control-Allow-Origin:*');Aber der Ursprung des Hochladens von Ressourcen wie Bildern muss mit dem Wert von Access-Control-Allow-Origin identisch seinWenn Access-Control-Allow-Origin auf den gleichen Wert wie der aktuelle Ursprung eingestellt ist, dann dort ist nur ein Domänenname, der hochgeladen werden kann. Wenn andere Domänennamen diese Schnittstelle aufrufen müssen, werden sie gesperrt. Daher ist es am besten, die Liste der Domänennamen einzuschränken kann diese Schnittstelle aufrufen. Verbesserte Sicherheit Die Methode besteht darin, zuerst den Ursprung der aktuellen Anfrage zu ermitteln. Wenn sie in der Liste der Domänennamen enthalten ist, auf die zugegriffen werden darf , legen Sie fest Wert von Access-Control-Allow-Origin auf die aktuelle Anfrage Origin
$originList = [ 'http://127.0.0.1', 'http://www.php.cn', 'http://www.php.cn', ]; if(in_array($_SERVER['HTTP_ORIGIN'], $originList)){ header('Access-Control-Allow-Origin:'.$origin); header("Access-Control-Allow-Credentials: true"); header('Access-Control-Allow-Headers:x-requested-with,content-type'); header("Access-Control-Allow-Methods: POST,GET,OPTIONS"); }Auf diese Weise können Sie Domänennamen steuern, die domänenübergreifend sein können, und Bildressourcen können genauso problemlos hochgeladen werden wie in derselben DomäneDie Post-Methode ist auch für die domänenübergreifende Einreichung anwendbar
Das obige ist der detaillierte Inhalt vonEine Einführung in die Methode zur Steuerung domänenübergreifender Domänennamen und zur Ermöglichung domänenübergreifender Bild-Uploads im PHP-Backend. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!