


So l?sen Sie das Problem, dass thinkphp-Bilder nicht domainübergreifend angezeigt werden
Apr 07, 2023 am 09:30 AMKürzlich bin ich auf einige seltsame Probleme gesto?en, als ich Projekte mit dem ThinkPHP-Framework entwickelte. Unser Projekt ist eine Website zur Bildanzeige, aber im Browser werden einige Bilder nicht angezeigt und in der Konsole wird keine Fehlermeldung angezeigt. Durch Suchen und Experimentieren haben wir schlie?lich herausgefunden, dass es sich hierbei um ein dom?nenübergreifendes Problem handelt. In diesem Beitrag werde ich unseren Prozess zur Identifizierung und L?sung von Problemen vorstellen.
Lassen Sie uns zun?chst verstehen, was dom?nenübergreifend ist. Cross-Domain tritt zwischen zwei Websites mit unterschiedlichen Domainnamen auf. Wenn die Ressourcen einer Website, wie z. B. JS, CSS, Ajax oder Bilder, den Zugriff auf die Ressourcen einer anderen Website anfordern, werden sie aufgrund der Einschr?nkungen derselben blockiert. Herkunftspolitik. Die Same-Origin-Richtlinie ist ein sehr wichtiges Sicherheitsmerkmal. Sie beschr?nkt den Zugriff einer Website nur auf Ressourcen mit demselben Dom?nennamen, Protokoll und Port wie ihre eigene.
In unserem Projekt verwenden wir eine Bibliothek eines Drittanbieters zum Laden von Bildern, und diese Bibliothek verwendet Adressen mit unterschiedlichen Dom?nennamen zum Speichern von Bildern. Daher kann das Bild im Browser nicht richtig angezeigt werden, wenn es die Dom?ne überschreitet.
Um dieses Problem zu l?sen, müssen wir einige Einstellungen auf der Serverseite vornehmen. Die gebr?uchlichste L?sung besteht darin, CORS (Cross-Origin Resource Sharing) serverseitig einzurichten. Mit CORS kann der Server angeben, welche Dom?nennamen auf die Ressource zugreifen k?nnen, wenn er auf Clientanfragen antwortet.
Im ThinkPHP-Framework k?nnen wir CORS implementieren, indem wir den folgenden Code in die Datei index.php einfügen:
header('Access-Control-Allow-Origin:*');?//允許所有來(lái)源訪問(wèn) header('Access-Control-Allow-Method:POST,GET');?//允許訪問(wèn)的方式
Dieser Code erm?glicht allen Quellen den Zugriff auf Ressourcen und erm?glicht den POST- und GET-Zugriff.
Wichtig ist hier zu beachten, dass dieser Code oben in index.php platziert werden sollte, damit alle Anfragen diese Einstellung verwenden k?nnen.
Neben der Einrichtung von CORS k?nnen wir auch andere Methoden zur L?sung dom?nenübergreifender Probleme nutzen. Beispielsweise ist JSONP (JSON mit Padding) eine praktikable Methode zur L?sung dom?nenübergreifender Probleme. Durch das Hinzufügen eines Skript-Tags zur Seite werden die Daten, auf die zugegriffen werden muss, in eine Funktion gepackt und die zurückgegebenen Ergebnisse werden dann empfangen eine andere Website.
Im ThinkPHP-Framework k?nnen wir den folgenden Code verwenden, um die JSONP-Methode zu generieren:
$callback?=?isset($_GET['callback'])???$_GET['callback']?:?'callback'; $data?=?array('name'?=>?'test',?'age'?=>?18); echo?$callback?.?'('?.?json_encode($data)?.?')';
Hier prüfen wir zun?chst, ob der Callback-Parameter im GET-Parameter vorhanden ist, und verwenden diesen Parameter, falls vorhanden, als Funktionsnamen. Anschlie?end werden die zurückzugebenden Daten im JSON-Format serialisiert und zur Rückruffunktion hinzugefügt. Wenn wir schlie?lich Daten zurückgeben, geben wir die Funktion zusammen mit den Daten an den Browser zurück.
Zusammenfassend l?sst sich sagen, dass dom?nenübergreifende Probleme normalerweise sehr h?ufige Probleme w?hrend der Entwicklung sind. Aber wir k?nnen dieses Problem durch serverseitige Einstellungen l?sen. Im ThinkPHP-Framework k?nnen wir CORS oder JSONP verwenden, um dom?nenübergreifende Probleme zu l?sen. Ich hoffe, dass dieser Artikel Lesern in Not helfen kann.
Das obige ist der detaillierte Inhalt vonSo l?sen Sie das Problem, dass thinkphp-Bilder nicht domainübergreifend angezeigt werden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)