Failed to execute ‘texImage2D’ on ‘WebGLRenderingContext’: The image element contains cross-origin data, and may not be loaded
uni-app引入cesium,在vue页面的视图层引入cesium后,在h5端正常显示cesium地图,在app端或者手机模拟器端不显示地图,无法加载地图,报Failed to execute ‘texImage2D’ on ‘WebGLRenderingContext’,显示其中有图片跨域所以无法加载。
解决办法一
版本不符合问题
- 使用cesium1.83版本测试下;
- 安卓版本或者手机webview不符合;
解决办法二
直接修改cesium源码,添加r.crossOrigin = “anonymous”。
function loadImageElement(e, t, i) {
var r = new Image;
r.crossOrigin = "anonymous"; // 添加这行代码
r.onload = function () {
i.resolve(r)
}, r.onerror = function (e) {
i.reject(e)
}, t && (TrustedServers.contains(e) ? r.crossOrigin = "use-credentials" : r.crossOrigin = ""), r.src = e
}
// 差不多3026行