"Cross-origin-requests werden nur für die unterstützten HTTP." Fehler beim laden einer lokalen Datei
Ich versuche zu laden ein 3D-Modell in Three.js mit JSONLoader
, und das 3D-Modell wird im gleichen Verzeichnis wie die gesamte website.
Ich bin immer der "Cross origin requests are only supported for HTTP."
Fehler, aber ich weiß nicht, was es verursacht und wie es zu beheben.
Sind Sie versuchen zu tun, diese lokal?
Müssen Sie localhost verwenden, auch wenn die lokale Datei
Aber es sin nicht cross-domain!
Wenn Sie Chrome, starten Sie es aus dem terminal mit der Option --allow-file-access-from-files-option, die Ihnen helfen könnten, aus.
Ja, es ist nicht wirklich " cross-domain, wenn die Datei im gleichen Ordner wie die Webseite, nun ist es... ich fand, dass, wenn Sie Firefox anstelle von Chrome, das problem geht Weg.
Müssen Sie localhost verwenden, auch wenn die lokale Datei
Aber es sin nicht cross-domain!
Wenn Sie Chrome, starten Sie es aus dem terminal mit der Option --allow-file-access-from-files-option, die Ihnen helfen könnten, aus.
Ja, es ist nicht wirklich " cross-domain, wenn die Datei im gleichen Ordner wie die Webseite, nun ist es... ich fand, dass, wenn Sie Firefox anstelle von Chrome, das problem geht Weg.
InformationsquelleAutor corazza | 2012-05-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Meine Kristallkugel sagt, dass du mit dem laden des Modells entweder
file://
oderC:/
, die treu zu der Fehlermeldung, da Sie nichthttp://
So können Sie entweder installieren Sie einen webserver in Ihrem lokalen PC oder laden Sie das Modell irgendwo anders und nutzen
jsonp
und ändern Sie die url zuhttp://example.com/path/to/model
Herkunft definiert ist, in RFC-6454 als
So, obwohl Ihre Datei stammt vom gleichen host (
localhost
), aber solange das Schema unterschiedlich ist (http
/file
), Sie werden behandelt wie unterschiedliche Herkunft.file://
, aber ich verstehe nicht, warum dies zulässig ist. Naja, ich bin der Installation von Lampp denke ich...Stell dir vor, die erlaubt ist und eine webapp, wobei der Autor der Seite benutzt so etwas wie
load('file://C:/users/user/supersecret.doc')
und dann laden Sie die Inhalte auf Ihre server über ajax etc.leider, Politik ist für alle Fälle, nicht nur für deins :(, gotta Sie tragen mit
Gibt es eine Seite für dieses Thema in der GitHub-wiki: github.com/mrdoob/three.js/wiki/How-to-run-things-locally
Sie können auch verwenden Sie die --allow-file-access-from-files-Schalter in Chrom. Pro meine Antwort hier: stackoverflow.com/questions/8449716/...
InformationsquelleAutor Andreas Wong
Nur eindeutig sein - ja, die Fehlermeldung sagt, Sie können nicht mit Ihrem browser direkt an
file://some/path/some.html
Hier sind einige Möglichkeiten, um schnell spin up einen lokalen web-server, um Ihre browser zu Rendern lokale Dateien
Python 2
Wenn du Python installiert...
Ändern Sie Verzeichnis in den Ordner, wo Ihre Datei
some.html
oder Datei(en) existieren mit dem Befehlcd /path/to/your/folder
Starten Sie eine Python-web-server mit dem Befehl
python -m SimpleHTTPServer
Damit starten Sie eine web-server zum hosten Ihrer gesamten directory-listing bei
http://localhost:8000
python -m SimpleHTTPServer 9000
geben Sie link:http://localhost:9000
Dieser Ansatz ist in jeder Python-installation.
Python 3
Tun die gleichen Schritte, aber verwenden Sie stattdessen folgenden Befehl
python3 -m http.server
Node.js
Alternativ, wenn Sie fordern, eine ansprechende Einrichtung und nutzen bereits nodejs...
Installieren
http-server
durch Eingabenpm install -g http-server
Wechseln Sie in Ihr Arbeitsverzeichnis, wo Ihre
some.html
LebenStarten Sie Ihren http-server durch Eingabe
http-server -c-1
Diese spins ein Node.js httpd, der dazu dient die Dateien in Ihrem Verzeichnis als statische Dateien zugänglich von
http://localhost:8080
Ruby
Wenn Ihre bevorzugte Sprache ist Ruby ... Ruby Götter sagen, dass dies so gut funktioniert:
PHP
Natürlich PHP hat auch seine Lösung.
In Reaktion auf LukeP Kommentar, in python 2.7 der Befehl funktioniert wie pro die Anweisungen
$ python -m SimpleHTTPServer
produziert die Meldung:Serving HTTP on 0.0.0.0 port 8000 ...
Wenn Sie buchstabieren den Namen des Moduls falsch, z.B.$ python -m SimpleHttpServer
dann erhalten Sie die FehlermeldungNo module named SimpleHttpServer
erhalten Sie eine ähnliche Fehlermeldung, wenn Python ist3 installiert (v. python 2.7). Sie können überprüfen Sie Ihre version von python mit dem Befehl:$ python --version
. Sie können auch den port angeben, zu hören wie diese:$ python -m SimpleHTTPServer 3333
Die python-server stellt Dateien aus dem Verzeichnis, in dem Sie den server starten. Also wenn die Dateien, die Sie möchten, servieren, befinden sich in /Benutzer/7stud/angular_projects/1app, dann starten Sie den server in das Verzeichnis ein, z.B.
$ cd ~/angular_projects/1app
, dann$ python -m SimpleHTTPServer
. In Ihrem browser geben Sie die urlhttp://localhost:8000/index.html
. Sie können auf Wunsch auch Dateien in Unterverzeichnissen des Verzeichnisses, in dem Sie den server gestartet hat, z.B.http://localhost:8000/subdir/hello.html
Ich habe gehört, dass Python ist einfach und mächtig, genauso wie "X" Sprache, aber das ist lächerlich! Keine Notwendigkeit zur Installation von XAMPP, oder setup eine einfache http-server mit node js zu dienen, die statische-Dateien - Ein-Befehl und boom! Vielen Dank, erspart VIEL Zeit und ärger.
GENIAL! - für Python unter Windows verwenden: python -m http.server 8080 ...oder was auch immer port, den Sie wollen und Wann Sie wollen zu beenden einfach Strg-c.
InformationsquelleAutor Scott Stensland
In Chrome können Sie dieses flag verwenden:
Lesen Sie hier mehr.
beachten Sie, dass diese Lösung erfordert einen Neustart alle Instanzen Chrome.exe für Sie zu arbeiten
Bitte, erklären, wie es zu benutzen chrome.
Sollte das nicht tun, obwohl
Ich würde vorschlagen, mit Chrom-nur für das lokale Debuggen (der Start mit Flagge
--allow-file-access-from-files
). Es bedeutet, dass die Verwendung von Chrome für Allgemeine web-browsing und die Verwendung von Chrom als Standardanwendung für die HTML-Datei.InformationsquelleAutor
Lief in heute.
Schrieb ich einige code, der wie folgt aussah:
...aber es sollte so Aussehen müssen:
Der einzige Unterschied war das fehlen von
http://
im zweiten code-snippet.Nur wollte, dass draußen im Fall, es gibt andere mit einem ähnlichen Problem.
InformationsquelleAutor James Harrington
Ändern Sie einfach die url zu
http://localhost
stattlocalhost
. Wenn Sie öffnen Sie die html-Datei von der lokalen, erstellen Sie einen lokalen server zu dienen, die html-Datei, der einfachste Weg ist, mitWeb Server for Chrome
. Das wird das Problem beheben.Web Server for Chrome
app link - es ist bei weitem die einfachste & sauberste Lösung für temporäre httpd-setup für Chrome IMOInformationsquelleAutor Finn
In einem Android-app — zum Beispiel, um zu erlauben, JavaScript-Zugriff auf Vermögen über
file:///android_asset/
— NutzungsetAllowFileAccessFromFileURLs(true)
auf dieWebSettings
, dass Sie aus der BerufunggetSettings()
auf dieWebView
.InformationsquelleAutor CommonsWare
Für diejenigen, die auf Windows ohne Python oder Node.js gibt es noch eine einfache Lösung: Mungo.
Alles, was Sie tun, ist ziehen Sie die ausführbare Datei an, wo die Wurzel der server werden soll, und führen Sie es. Ein Symbol wird in der Taskleiste angezeigt und es wird navigieren Sie zu dem server im Standard-browser.
Auch, Z-WAMP ist eine 100% portable WAMP läuft in einem einzigen Ordner, es ist genial. Das ist eine option, wenn Sie brauchen eine schnelle PHP-und MySQL-server.
InformationsquelleAutor bryc
Ich werde die Liste 3 verschiedene Ansätze um dieses Problem zu lösen:
npm
Paket: Installieren live-server mitnpm install -g live-server
. Dann, gehen Sie zu diesem Verzeichnis, öffnen Sie das terminal und geben Sielive-server
- und enter-Taste drücken, Seite wird serviert inlocalhost:8080
. BONUS: Es unterstützt auch hot-reloading standardmäßig.target
zu"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-web-security --user-data-dir="C:/ChromeDevSession"
und sparen. Dann mit Chrome öffnen Sie die Seite überctrl+o
. HINWEIS: NICHT verwenden Sie diese Verknüpfung, für regelmäßige surfen.InformationsquelleAutor BlackBeard
Wenn Sie Mozilla Firefox verwenden, funktioniert Es wie erwartet ohne Probleme;
P. S. Erstaunlich, IntenetExplorer_Edge funktioniert absolut gut!!!
InformationsquelleAutor Yash P Shah
Verwenden
http://
oderhttps://
zu erstellen urlFehler:
localhost:8080
Lösung:
http://localhost:8080
InformationsquelleAutor KARTHIKEYAN.A
Schnellste Weg für mich war:
für windows-Benutzer führen Sie Ihre Datei auf Firefox-problem gelöst, oder
wenn Sie möchten, verwenden Sie chrome einfachste Weg für mich war, zu installieren Python 3 dann von der Eingabeaufforderung aus den Befehl ausführen
python -m http.server
dann gehen Sie zu http://localhost:8000/ dann navigieren Sie auf Ihre DateienInformationsquelleAutor Rida
War ich immer das genaue Fehlermeldung beim laden einer HTML-Datei auf dem browser, der eine json-Datei aus dem lokalen Verzeichnis. In meinem Fall, konnte ich dies lösen, indem Sie erstellen eine einfache Knoten-server, erlaubt server für statische Inhalte. Ich verließ den code für diese in dieser andere Antwort.
InformationsquelleAutor thehme
Ich schlage vor, Sie verwenden einen mini-server, führen diese Art von Anwendungen, die auf localhost (wenn Sie nicht mit einigen eingebauten server).
Hier eine, die ist sehr einfach zu setup und ausführen:
InformationsquelleAutor Deniss M.
Ich vermute, es ist bereits in einigen der Antworten, aber ich werde etwas ändern, damit die komplette Arbeit Antwort (leichter zu finden und zu verwenden).
Gehen Sie zu: https://nodejs.org/en/download/. Install nodejs.
Installieren http-server mit dem Befehl von der Eingabeaufforderung aus
npm install -g http-server
.Wechseln Sie in Ihr Arbeitsverzeichnis, wo
index.html
/yoursome.html
befindet.Starten Sie Ihren http-server mit dem Befehl
http-server -c-1
Öffnen Sie web-browser zu
http://localhost:8080
oder
http://localhost:8080/yoursome.html
- abhängig von Ihrem html-Namen.InformationsquelleAutor TarmoPikaro
Er sagt einfach, dass die Anwendung ausgeführt werden soll auf einem web-server. Ich hatte das gleiche problem mit chrome, begann ich tomcat und zog mein Anwendung es, und es funktionierte.
InformationsquelleAutor Enayat
er. Ich habe gerade einige offizielle Worte "Versucht zu laden, unbebaut, remote-AMD-Module, die das dojo/text plugin schlägt fehl aufgrund von cross-origin-security-Einschränkungen. (Built-Versionen der AMD-Module sind davon nicht betroffen, weil die Anrufe dojo/text werden beseitigt durch das build-system.)" https://dojotoolkit.org/documentation/tutorials/1.10/cdn/
InformationsquelleAutor YUIOP QWERT
Einer Weise, die es funktionierte das laden lokaler Dateien ist mit Ihnen mit in den Projekt-Ordner anstelle von außerhalb Ihrer Projekt-Ordner. Erstellen Sie einen Ordner unter Ihrem Projekt-Beispiel-Dateien, die ähnlich zu der Weise schaffen wir für die Bilder und ersetzen Sie den Abschnitt, wo mit kompletten lokalen Pfad zu anderen als Projekt-Pfad und die relative url der Datei im Projekt-Ordner .
Es war für mich
InformationsquelleAutor Naga Sai A
Für alle y ' all auf
MacOS
... setup eine einfache LaunchAgent um diese glamouröse Funktionen in Ihre eigene Kopie von Chrome...Sparen
plist
namens was (launch.chrome.dev.mode.plist
zum Beispiel) in~/Library/LaunchAgents
mit ähnlichem Inhalt...Es sollte starten.. aber Sie können es zwingen, zu tun, also zu jeder Zeit mit dem terminal-Befehl
launchctl load -w ~/Library/LaunchAgents/launch.chrome.dev.mode.plist
TADA! ? ?? ? ??
InformationsquelleAutor Alex Gray
Starten Sie die app-server,und Sie sollten in der Lage sein, um den Zugriff auf die Datei von localhost
InformationsquelleAutor Fred Ondieki
Nicht möglich, load-statische lokale Dateien(z.B. svg), ohne server. Wenn Sie NPM /GARN in Ihrem Rechner installiert haben, können Sie die setup-einfache http-server mit "http-server"
InformationsquelleAutor sujithklr93
Viele problem, wobei mein problem ist die fehlende '/' Beispiel:
jquery-1.10.2.js:8720 XMLHttpRequest-Objekt kann nicht geladen werden http://localhost:xxxProduct/getList_tagLabels/
Es muss sein: http://localhost:xxx/Product/getList_tagLabels/
Ich hoffe, dass diese Hilfe für die treffen dieses problem.
InformationsquelleAutor Ngô Đức Tuấn