代码之家  ›  专栏  ›  技术社区  ›  JDS

Threejs模型加载:“CORS策略已阻止从源'null'访问XMLHttpRequest…”-如何在本地测试?还是简单上传?

  •  0
  • JDS  · 技术社区  · 4 年前

    我在本地使用three.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.
    

    有什么简单安全的方法可以绕过这个问题,重新学习threejs?我可以在某处添加某种权限代码吗?将我的3D模型上传到某个地方并从http位置加载(如果是这样,我在哪里可以轻松免费地完成此操作)?

    0 回复  |  直到 4 年前
        1
  •  3
  •   Rahul Singh    4 年前

    有两种方法可以解决这个问题:

    1.更改浏览器中本地文件的安全性。对于chrome,可以通过搜索chrome可执行文件的路径,然后在cmd上:

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

    2.从本地web服务器运行文件。这允许您以以下方式访问您的页面:

    http://localhost/yourFile.html
    

    您可以通过以下方式获取更多信息: 运行本地服务器 here

        2
  •  2
  •   Yonet    4 年前

    您可以使用简单的服务器提供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/在默认浏览器上。