为skybox加载图像时出现跨原点问题
Cross-origin issue loading images for skybox
这让我抓狂。我正试图用我从互联网上得到的图像制作一个skybox。我的代码:
作为全局变量:
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.
当我添加THREE.ImageUtils.crossOrigin="Anonymous"时;我得到这个错误:
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时使用--允许从文件访问文件或其他什么,但不想冒任何安全问题的风险。然后我看到其他人说要把图片放到网络服务器上?这件事我完全不知道该怎么做,为什么一定要这么复杂??
我的html和js文件与我的图像位于同一个文件夹(ComS_336_workspace)中。
我只是真的需要帮助做什么,如果我必须做一个网络服务器,我该如何将我的图像放在上面并设置图像的路径?我不明白。
要解决这个问题,您需要将远程文件保存到您的站点,或者使用站点中的一些代理脚本(例如PHP)通过您的站点获取图像。
无论如何,你需要一个完全合格的域名来消除CORS兼容的错误。从file:///
加载webgl和图像将不起作用。
您使用什么来编辑代码?如果你试图从桌面上运行页面进行测试,那么我建议你使用brackets.io.
它很棒,免费,并且在构建代码时会让你绕过CORS问题。
相关文章:
- 在指令控制器中使用$attrs时出现问题
- 将PHP变量传递给jQuery时遇到问题
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- 参数变量出现ngTable指令问题
- 剑道网格jQuery动画()问题
- 我的jQuery插件参数没有正确启动,遇到了问题
- Phonegap-(安卓/iphone)多个图像的图像库出现问题
- TableExport jquery插件:文件名和扩展名问题
- JavaScript Pub/Sub属性访问问题
- JavaScript异步问题
- 如何解决Yii中的页面刷新问题
- Safari(Mac OS)上的jQuery平滑滚动问题
- jqGrid树网格问题
- 使用正则表达式评估电子邮件地址时出现性能问题
- 如何消除代码中的未定义和其他问题
- JavaScript代码问题:我正在将对象转换为数组
- 访问iframe contentDocument属性时出现跨原点框架问题
- 为skybox加载图像时出现跨原点问题
- CSRF令牌混淆.我可以用wget得到它,没有交叉原点的问题.那有什么意义呢?
- 服务器上的访问控制允许原点出现问题