【问题标题】:Javascript / Amazon s3 - Access control origin error when loading a javascript file via threejsJavascript / Amazon s3 - 通过threejs加载javascript文件时访问控制源错误
【发布时间】:2012-07-20 03:41:55
【问题描述】:

我在 amazon s3 上托管了一些大文件,我希望我的网站能够通过 threejs 加载调用加载。但是,当我为这些文件调用加载时,我收到一个错误,即由于访问控制允许来源而不允许加载。我的负载调用是这样的:

loader = new THREE.JSONLoader();
loader.load("https://s3.amazonaws.com/folder/shoot-o.js",function(geometry){
    //DO STUFF
});

我如何访问这些?

【问题讨论】:

    标签: javascript ajax json amazon-s3 three.js


    【解决方案1】:

    我所知道的让它与三个加载器一起工作的唯一方法是让服务器发送一个 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 数据作为第一个参数并用它来处理你的事情。

    Here is a discussion about the problem regarding the THREE loader

    【讨论】:

    • 哎呀,你链接到我的 js 文件,而不是讨论 - 很想阅读它。
    • 啊,是的——他们并没有真正回答这个问题,是吗?哦,好吧,好像因为是模型,所以需要用到三个loader的web helper。
    猜你喜欢
    • 2017-02-05
    • 1970-01-01
    • 2020-10-08
    • 1970-01-01
    • 2011-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多