three.js - 三个.js 模型加载问题
问题描述
我正在尝试将一些 3D 模型从远程 URL 加载到我的页面中,但我突然一次又一次地收到此错误:
SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data
我正在使用的模型是来自THREE.js的 GIT 的模型——在这里——所以它们都是我们多年来一直在使用的非常好的合法模型。换句话说:它们不包含任何unexpected character
地方。
奇怪的是,在这个项目的开发过程中,我首先将这些模型(“.gltf”和“.glb”文件)直接下载到我的硬盘上,然后从那里将它们加载到我的页面中——我的代码运行良好。但是,当我将这些完全相同的模型上传到远程服务器并尝试从该 URL 加载它们时,我突然开始收到此错误。
这是我的加载功能:
function loadModel(modelFileName) {
console.log("->In 'loadModel()', 'modelFileName' =", modelFileName);
// Load the Object:
gltfLoader.load(modelFileName, function(incomingScene) {
console.log(modelFileName, "' has arrived!!!");
console.log(" =>'incomingScene' = ", incomingScene);
let loadedScene = new THREE.Scene();
loadedScene = incomingScene.scene;
scene.add(loadedScene);
const defaultTransform = new THREE.Matrix4()
.multiply(new THREE.Matrix4().makeScale(0.5, 0.5, 0.5));
loadedScene.applyMatrix4(defaultTransform);
},
// Called when loading is in progresses:
function(xhr) {
console.log( (xhr.loaded / xhr.total * 100) + '% loaded' );
},
function(error) {
console.log("ERROR! -->", error);
});
}
这是我要求的其中一个模型所在的 URL: https ://ipfs.io/ipfs/QmYqwNYxqmu4z39emTo7h9D62rbwm1esAmbAf2PctAyUvu?filename=Flamingo.glb
(当我前几次运行应用程序/页面时,这个特定的模型实际上加载得很好 - 但后来它突然停止加载并给了我列出的错误。没有意义。)
关于这一切,我从浏览器的 JS 控制台获得的唯一输出来自我上面发布的代码的进度回调位,它只是说:
Infinity% loaded
任何想法是什么导致了这个 - 以及如何解决它?
====================================================
更新:
这是我浏览器中 NETWORK 选项卡的屏幕截图:
解决方案
推荐阅读
- python - 在对 groupby 执行求和后保留输出中的列
- xml - 第 4 行第 5 列的错误:文档末尾的额外内容
- arduino - Arduino UNO GSM
- java - 如何在不知道 Java 枚举类型的情况下使用反射比较多个枚举?
- java - 如何使用 Log4j 注册额外的 PropertySource?
- windows - Windows - 批量符号链接文件和文件夹递归
- php - Codeigniter 没有更新我的数据
- html - IE 和 Edge 中无法解释的网格行高
- android - 获取一个视图每个角的位置,然后在该位置添加一个视图
- javascript - 重复 XMLHttpRequest 请求