首页 > 解决方案 > 三个.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 选项卡的屏幕截图:

在此处输入图像描述

标签: three.js3d

解决方案


推荐阅读