Cors 三个JS交叉源Collada文件

Cors 三个JS交叉源Collada文件,cors,cross-domain,Cors,Cross Domain,当试图从我的服务器加载Collada文件时,我遇到了跨源错误,因此无法访问我的文件 链接: var script=document.createElement(“脚本”); script.type=“text/javascript”; script.src=”https://hydle.000webhostapp.com/host/obj/stand.dae"; script.integrity=“sha384 tSi+YsgNwyohDGfW/VhY51IK3RKAPYDcj1sNXJ16o

当试图从我的服务器加载Collada文件时,我遇到了跨源错误,因此无法访问我的文件

链接:

var script=document.createElement(“脚本”);
script.type=“text/javascript”;
script.src=”https://hydle.000webhostapp.com/host/obj/stand.dae";
script.integrity=“sha384 tSi+YsgNwyohDGfW/VhY51IK3RKAPYDcj1sNXJ16oRAyDP++K0NCzSCUW78EMFmf”;
script.crossOrigin=“匿名”;

document.getElementsByTagName(“head”)[0].appendChild(脚本)不要尝试将collada文件附加为脚本,请尝试以下操作:

var url = "https://hydle.000webhostapp.com/host/obj/stand.dae";
var loader = new THREE.ColladaLoader();
loader.setCrossOrigin("anonymous");
loader.load(url, function (collada) {
    scene.add(collada.scene);
});
问题: 默认情况下,许多Apache服务器(如您的服务器)已禁用与其他服务器的资源共享。在您的情况下,
https://hydle.000webhostapp.com
不允许与共享.dae文件
https://codepen.io
,这就是您出现此错误的原因


解决方案1: 如果将代码和.dae文件托管在同一台服务器上,则不会遇到任何CORS问题,因为它们都具有相同的来源


解决方案2: 你需要上传一个PHP脚本到你的服务器,允许资源共享到特定的域。我不会为您编写全部代码,但它是这样的:

script.php:

<?php
    header("Access-Control-Allow-Origin: https://codepen.io");
    echo readfile("/path/to/file.dae");
?>

以这种方式访问
script.php
将返回
file.dae
的内容。由于安全问题,我不推荐解决方案2,但这正是您所要求的。有关PHP的readfile的更多信息,请阅读。

这不是一个问题。这是CORS的问题。您需要将服务器设置为允许与
https://codepen.io
如果您希望您的资产在那里可用。如何设置服务器以允许CORS?这取决于您运行的服务器类型。它是否运行php、Node或其他?您还应该阅读这篇@Marquizzo无法找到与Javascript一起使用的清晰解决方案的文章。对于服务器类型,我只是将文件放在那里,以便在其他网站上使用,这是因为您的服务器不允许与其他网站共享资源。您必须修改服务器设置以允许资源共享。它可能不会是一个JavaScript解决方案。@Marquizzo我想这就像你说的,但老实说,我不知道怎么做。。你知道怎么做吗?谢谢你的回复,但那没用change@Devastarius您正在运行Web服务器吗?Three.js需要一个Web服务器才能运行。
script.src = "https://hydle.000webhostapp.com/host/obj/script.php";