Beim Versuch, ein 3D-Modell mit JSONLoader in Three.js zu laden, kann es vorkommen, dass Benutzer Es kommt der Fehler „Cross-Origin-Anfragen werden nur für HTTP unterstützt.“ Dieses Problem tritt auf, wenn auf lokale Dateien über Nicht-HTTP-Protokolle zugegriffen wird.
In der Fehlermeldung heißt es genau, dass ursprungsübergreifende Anforderungen nur für HTTP unterstützt werden. Die Ursache liegt jedoch darin, dass lokale Dateien typischerweise über die Protokolle „file://“ oder „C:/“ geladen werden. Gemäß RFC-6454 wird der Ursprung durch Schema, Host und Port definiert. Auch wenn sich die Datei und die Website in diesem Fall auf demselben Host befinden (z. B. localhost), weist der Unterschied im Schema (Datei / http) darauf hin, dass sie unterschiedlichen Ursprungs sind.
Um das Problem zu lösen, gibt es zwei mögliche Vorgehensweisen:
1. Installieren Sie einen lokalen Webserver:
Installieren Sie einen lokalen Webserver wie Apache oder Nginx auf Ihrem Computer. Konfigurieren Sie dann den Webserver so, dass er das 3D-Modell hostet und über das Protokoll „http://“ darauf zugreift. Dadurch wird sichergestellt, dass die Datei mit demselben Ursprung wie die Website geladen wird.
2. Laden Sie das Modell auf einen externen Host hoch:
Alternativ können Sie das 3D-Modell auf einen Hosting-Dienst eines Drittanbieters hochladen, z. B. Google Cloud Storage oder Amazon S3. Dadurch können Sie über eine HTTP-formatierte URL (z. B. „http://example.com/path/to/model“) auf die Datei zugreifen.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich beim Laden lokaler 3D-Modelle die Meldung „Cross-Origin-Anfragen werden nur für HTTP unterstützt'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!