我在 amazon s3 上托管了一些大文件,我希望我的网站能够通过 threejs 加载调用加载。但是,当我为这些文件调用加载时,我收到一个错误,即由于访问控制允许来源而不允许加载。我的负载调用是这样的:
loader = new THREE.JSONLoader();
loader.load("https://s3.amazonaws.com/folder/shoot-o.js",function(geometry){
//DO STUFF
});
我如何访问这些?
我在 amazon s3 上托管了一些大文件,我希望我的网站能够通过 threejs 加载调用加载。但是,当我为这些文件调用加载时,我收到一个错误,即由于访问控制允许来源而不允许加载。我的负载调用是这样的:
loader = new THREE.JSONLoader();
loader.load("https://s3.amazonaws.com/folder/shoot-o.js",function(geometry){
//DO STUFF
});
我如何访问这些?
我知道让它与三个加载器一起工作的唯一方法是让服务器发送一个Access-Control-Allow-Origin: yourdomain.com
包含您托管文件的标头。我不知道这在 s3 上是否可行。
您也可以尝试使用 JSONP(带有 Padding 的 JSON),例如:
var head = document.getElementsByTagName("head")[0];
var script = document.createElement("script");
script.src = "https://s3.amazonaws.com/folder/shoot-o.js";
head.appendChild(script);
然后修改您的 js 文件,以便 JSON 数据由 js 函数调用包装:
loadJSON({yourData: true, ...});
并实现该loadJSON
函数,以便它接受 JSON 数据作为第一个参数并用它来做你的事情。