Три js Загрузка модели: «Доступ к XMLHttpRequest .. из источника 'null' заблокирован политикой CORS» - Как протестировать локально? Или простая загрузка? - PullRequest
2 голосов
/ 01 августа 2020

Я играю с тремя. js локально с одной HTML страницей, и я хочу поиграть с загрузкой и перемещением файлов 3D-объектов. Из образца кода я скопировал следующее:

var loader = new THREE.AMFLoader(); 

                loader.load( './models/rook.amf', function ( amfobject ) { //'./models/rook.amf'

                    scene.add( amfobject );
                    render();

                } );

И в Chrome я получаю следующую ошибку:

Access to XMLHttpRequest at 'file:///C:/Users/me/Desktop/project/models/rook.amf' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.

Какой простой и безопасный способ я могу обойти это и вернуться к изучению трех js? Могу я где-нибудь добавить какой-нибудь код разрешения? Загрузите куда-нибудь мою 3D-модель и загрузите ее из http-адреса (и если да, то где я могу сделать это легко и бесплатно)?

Ответы [ 2 ]

2 голосов
/ 01 августа 2020

Есть два способа решить эту проблему:

1. Измените безопасность локальных файлов в браузере. Для chrome это можно сделать, выполнив поиск пути к исполняемому файлу Chrome, а затем на вашем cmd:

> "C:\PathTo\Chrome.exe" --allow-file-access-from-files

2. Запустите файлы с локального веб-сервера. Это позволяет вам получить доступ к своей странице как:

http://localhost/yourFile.html

Вы можете получить дополнительную информацию на Запуск локального сервера здесь

1 голос
/ 01 августа 2020

Вместо того, чтобы напрямую указывать путь к файлу, вы можете обслуживать свой html файл на простом сервере: https://www.npmjs.com/package/http-server.

Откройте терминал:

cd ./Users/me/Desktop/project/
npm install --global http-server
http-server -p 4200

Будет использоваться index. html файл по адресу http://localhost: 4200 / в вашем браузере по умолчанию.

...