Javascript 跨原点问题加载skybox的图像
这让我快发疯了。我正在尝试使用从互联网上获得的图像制作skybox。我的代码: 作为全局变量:Javascript 跨原点问题加载skybox的图像,javascript,three.js,skybox,Javascript,Three.js,Skybox,这让我快发疯了。我正在尝试使用从互联网上获得的图像制作skybox。我的代码: 作为全局变量: var path = "file:///C:/Users/Tyler/Desktop/ComS_336_workspace/"; var imageNames = [ path + "meadow_bk.jpg", path + "meadow_ft.jpg",
var path = "file:///C:/Users/Tyler/Desktop/ComS_336_workspace/";
var imageNames = [
path + "meadow_bk.jpg",
path + "meadow_ft.jpg",
path + "meadow_up.jpg",
path + "meadow_dn.jpg",
path + "meadow_rt.jpg",
path + "meadow_lf.jpg"
];
在主要功能中:
// load the six images
//THREE.ImageUtils.crossOrigin = "Anonymous";
var ourCubeMap = THREE.ImageUtils.loadTextureCube(imageNames);
但是得到这个错误:
DOMException: Failed to execute 'texImage2D' on 'WebGLRenderingContext': The cross-origin image at file:///C:/Users/Tyler/Desktop/ComS_336_workspace/meadow_ft.jpg may not be loaded.
Image from origin 'file://' has been blocked from loading by Cross-Origin Resource Sharing policy: Invalid response. Origin 'null' is therefore not allowed access.
当我添加三个.ImageUtils.crossOrigin=“匿名”;我得到这个错误:
DOMException: Failed to execute 'texImage2D' on 'WebGLRenderingContext': The cross-origin image at file:///C:/Users/Tyler/Desktop/ComS_336_workspace/meadow_ft.jpg may not be loaded.
Image from origin 'file://' has been blocked from loading by Cross-Origin Resource Sharing policy: Invalid response. Origin 'null' is therefore not allowed access.
我看到一些帖子说运行chrome时,允许从文件或其他任何地方访问文件,但不想冒任何安全问题。然后我看到其他人说把图片放到Web服务器上?我完全不知道该怎么做,为什么会这么复杂
我的html和js文件与我的图像位于同一文件夹(ComS_336_workspace)中
我只是真的需要帮助做什么,如果我必须做一个Web服务器,我该如何把我的图片放在上面并设置图片的路径?要解决这个问题,您需要将远程文件保存到站点,或者使用站点中的代理脚本(示例中为PHP)通过站点获取图像
无论如何,您需要一个解决方案来消除符合CORS的错误。从
文件://
加载webgl和图像将不起作用。您使用什么来编辑代码?如果您试图从桌面上运行该页面进行测试,那么我建议您这样做
这是一款很棒的免费软件,可以帮助您在构建代码时解决CORS问题。“我真的需要帮助做什么”-您已经说过您必须做的事情:在WEB服务器上托管您的网站。“我必须做一个WEB服务器,如何将图像放在上面并设置图像路径?”-选择一个WEB服务器。安装它。遵循它的指示。