In vielen Fällen platzieren große und mittelgroße Websites statische Ressourcen (wie Schriftdateien, Bilder usw.) auf unabhängigen Servern oder CDNs und verwenden unabhängige Ressourcendomänennamen (wie res.test.com), um statische Ressourcen zu verteilen, den Zugriff zu beschleunigen und den Druck auf die Hauptseite zu verringern. Bei der tatsächlichen Bereitstellung werden Sie jedoch feststellen, dass der Browser keine Ressourcen von diesen unterschiedlichen Domänennamen laden kann und die Firefox-Konsole einen Fehler meldet:
Cross-Origin-Anfrage blockiert: Die Same Origin Policy verbietet das Lesen der Remote-Ressource unter http://xxxxx. (Grund: CORS-Anforderung fehlgeschlagen). Dies liegt daran, dass moderne Browser es als Cross-Origin-Ressource definieren und das Laden nicht zulassen. Um Cross-Domain zu verstehen, müssen Sie zunächst die Same-Origin-Policy verstehen. Die Same-Origin-Policy ist eine sehr wichtige Sicherheitsrichtlinie, die aus Sicherheitsgründen in Browsern implementiert wird. Was ist Homologie? Eine URL besteht aus einem Protokoll, einem Domänennamen, einem Port und einem Pfad. Wenn zwei URLs dasselbe Protokoll, denselben Domänennamen und denselben Port haben, haben sie denselben Ursprung. Same-Origin-Policy: Die Same-Origin-Policy des Browsers verhindert, dass „Dokumente“ oder Skripte unterschiedlicher Herkunft bestimmte Eigenschaften des aktuellen „Dokuments“ lesen oder festlegen. (White Hat spricht über Web-Sicherheit[1]) Der Schlüssel ist also, wie man es löst. Tatsächlich ist es sehr einfach. Fügen Sie einfach eine Header-Information auf dem statischen Ressourcenserver hinzu: Zugriffskontrolle-Ursprung zulassen * Dieser Artikel verwendet Apache für den Betrieb, nginx ist ähnlich Bearbeiten Sie zuerst httpd.conf Finden Sie diese Zeile Entfernen Sie das Kommentarzeichen # Der Zweck besteht darin, das benutzerdefinierte Modul „Apache-Headerinformationen“ zu aktivieren Fügen Sie dann eine Zeile zum virtuellen Host des unabhängigen Ressourcendomänennamens hinzu Dies bedeutet, dass beim Zugriff auf Ressourcen unter diesem Domänennamen ein Header hinzugefügt wird. Starten Sie Apache neu Kommen Sie noch einmal vorbei, ok! NameVirtualHost 10.0.0.2:80 <VirtualHost 10.0.0.2:80> Dokumentstammverzeichnis /var/www/host.example.com Servername host.example.com JkMount /webapp/* jkworker Header-Satz Access-Control-Allow-Origin "*" RewriteEngine ein RewriteRule ^/andererhost http://andererhost.example.com/webapp [R,L] </VirtualHost> Und hier ist ein Beispiel der Apache-Konfiguration für das zweite: NameVirtualHost 10.0.1.2:80 <VirtualHost 10.0.1.2:80> DocumentRoot /var/www/otherhost.example.com Servername otherhost.example.com JkMount /webapp/* jkworker Header-Satz Access-Control-Allow-Origin "*" </VirtualHost> Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: Detaillierte Erläuterung des grundlegenden Falls des React.js-Frameworks Redux
>>: Zusammenfassung der MySQL-Indexkenntnisse
In diesem Artikel wird der spezifische Code von j...
Nachdem Sie VMware installiert und eine neue virt...
Vorwort Einige Leute haben mich in diesen Tagen u...
Klassifizierung der Farbeigenschaften Jede Farbe ...
Anpassen eines Demo-Befehls Die Syntax der benutz...
1) Prozess 2) FSImage und Bearbeitungen Nodenode ...
Ich bin vor kurzem mit MySQL in Berührung gekomme...
Als Root-Konto von MySQL verwende ich beim Verbin...
Anwendungsszenarien Bei vorhandenen Servern A und...
Linux-Betrieb Experimentelle Umgebung: Centos7-Vi...
reduce Methode ist eine Array-Iterationsmethode. ...
Der Installationsprozess entfällt (ich habe es di...
Während ich eine Pause machte, wurde ich durch ei...
CenOS6.7 installiert MySQL8.0.22 (empfohlene Samm...
Technische Struktur Das Projekt ist in zwei Teile...