Неперехваченная ошибка: SECURITY_ERR: исключение DOM 18 при применении текстур с помощью Three.js в WebGL

#javascript #jquery #webgl #three.js

#javascript #jquery #webgl #three.js

Вопрос:

я следую этому руководству по началу работы с WebGL и three.js . Моя проблема заключается в том, что при добавлении строки map: THREE.ImageUtils.loadTexture("images/particle.png"), Chrome возникает Uncaught Error: SECURITY_ERR: DOM Exception 18.

Я понимаю, что это связано с междоменной ссылкой, но я обслуживаю это с виртуальной машины с настройкой LAMP, так как же это может быть перекрестная ссылка? Я могу заставить это работать, выполнив python -m SimpleHTTPServer на хосте, а затем открыть http://localhost:8000/Particles.html в Chrome, но это решение бесполезно, если оно работает только с локальным сервером.

Как заставить это работать, чтобы веб-сервер действительно мог правильно обрабатывать страницу?

Ответ №1:

Я играл с three.js немного, но, боюсь, я не силен в JavaScript.

Тем не менее, я думаю, вам следует предоставить API getImageData Макса Новаковича. Если это поможет, в блоге disturb media есть короткий пост об этом.

Комментарии:

1. Это может быть способом обойти проблему, но с этим скриптом мое приложение будет зависеть от доступности сервера, перенаправляющего изображения. Однако я не понимаю, почему эта ошибка появляется в первую очередь, когда она размещена на сервере в виртуальной машине !?

Ответ №2:

Он должен работать, когда размещен на веб-сервере, и изображения извлекаются из того же домена (как вы можете видеть из примера python -m SimpleHTTPServer). Я не знаю, что происходит с сервером виртуальной машины, выполняет ли он какое-то перенаправление виртуального хоста? (Как в: запросы веб-страницы http://foobar/image.png , сервер 302 перенаправляет на http://cdn/image.png )

Если у вас где-нибудь есть тестовый пример, я могу взглянуть.