Obecnie uczę się webgl. W połączeniu z Teksacją2D, która nazywa się, gdy tekstura zakończyła ładowanie, otrzymuję następujące SecurityError:

Uncaught SecurityError: Failed to execute 'texImage2D' on 'WebGLRenderingContext': The cross-origin image at /path/to/texure.png may not be loaded.

Jednak plik jest jednak w tej samej domenie, w rzeczywistości jest w tym samym katalogu, co plik HTML żądający go.

Oto układ pliku:

> js
|-> script.js
|-> glUtils.js
|-> sylvester.js
> texture.png
> index.html

A kiedy spoglądam na listę zasobów konsoli F12, obraz texture.png jest tam, w pełni załadowany, a to jest 256 x 256. Dlaczego uważam, że prośba z innej domeny?

3
vcapra1 13 sierpień 2014, 20:55

2 odpowiedzi

Najlepsza odpowiedź

Rozwiązaniem jest to, że musisz znajdować się na lokalnym WebServer, ponieważ Plik: /// Żądania domeny nie zostaną przyznane. (Informacje podane przez spiczasty:

Jeśli serwujesz rzeczy z lokalnego serwera WebServer, będzie działać, ponieważ przeglądarka zobaczy te jako z tej samej domeny. Chrome używany do opcji wiersza poleceń, aby umożliwić jej: --Wyllow-access-od-files, ale nie wiem, czy nadal działa

3
vcapra1 13 sierpień 2014, 17:59

Prawdopodobnie otrzymujesz błąd, ponieważ używasz adresu URL na podstawie {x0}}.

Rozwiązaniem jest użycie prostego serwera WWW. Otwórz terminal i typ

python -m SimpleHTTPServer

Następnie przejdź do http://localhost:8000 (Zainstaluj python, jeśli jesteś na oknach) lub użyj Node.js lub ewentualnie jeszcze lepiej używać Devd

Nie używaj --allow-file-access-from-files. Otwiera to maszynę do włamania się przez przeglądarkę. To byłoby jak wyłączenie zapory lub skanera wirusa.

3
Community 23 maj 2017, 12:08