这篇主要是对上一篇博客cesium billboard出现跨域的原理分析

https://www.cnblogs.com/SmilingEye/p/11363837.html

1.源码位置

从Billboard.js文件,找到setImage方法。

找到TextureAtlas.js文件,找到addImage方法。

找到Resource.js文件,找到fetchImage方法。

最后在Resource.js文件,loadImageElement方法为最终加载方法。

2.源码

    function loadImageElement(url, crossOrigin, deferred) {
var image = new Image(); image.onload = function() {
deferred.resolve(image);
}; image.onerror = function(e) {
deferred.reject(e);
}; if (crossOrigin) {
if (TrustedServers.contains(url)) {
image.crossOrigin = 'use-credentials';
} else {
image.crossOrigin = '';
}
} image.src = url;
}

3.分析

出现跨域主要是给image对象加入了crossOrigin属性。

crossorigin 属性不止可以用于<script>标签,还可以用与<img><video>等标签,
用于配置 CORS 的请求数据,见下表,

Keyword State Request Mode Credentials Mode
the attribute is omitted No CORS "no-cors" "omit"
"" Anonymous "cors" "same-origin"
"anonymous" Anonymous "cors" "same-origin"
"use-credentials" Use Credentials "cors" "include"

不同的crossorigin值,指定了不同的Request Mode 和 Credentials Mode。

其中,术语use credentials指的是,cookies,http authentication 和客户端ssl证书。

4.重现错误

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js">
</script>
<script>
$(document).ready(function(){
var imgObj1 = new Image;
imgObj1.src = "https://www.w3school.com.cn/i/eg_tulip.jpg";
imgObj1.width = ;
imgObj1.height = ;
imgObj1.crossOrigin = 'use-credentials';
$("#box").append(imgObj1);
});
</script>
</head>
<body>
<div id="box"></div>
</body>
</html>

这段代码在菜鸟教程或者在本地存为html在打开,同样会出现跨域问题。

尝试修改

imgObj1.crossOrigin = '';

或者注释掉这段代码,重新测试(注意清理缓存)

5.如何解决跨域问题

看这篇博客https://www.cnblogs.com/SmilingEye/p/11158405.html

cesium billboard跨域问题2的更多相关文章

  1. cesium billboard跨域问题1

    群里小伙伴问道使用billboard加载图片时出现跨域问题,一般认为在服务器端设置 Access-Control-Allow-Origin: * 例如用tomcat发布图片服务,可以这样设置:http ...

  2. 基于Cesium1.26地图API下的GeoServer2.9.0服务器跨域设置

    遇到的问题: 最近基于Cesium来做3D模型的地图开发,在访问自己发布的WMS服务之后,遇到了GeoServer跨域问题. 调用这个WMS服务的时候,浏览器(我用Chrome)开发者工具报错: 控制 ...

  3. 解决ajax跨域的方法原理详解之Cors方法

    1.神马是跨域(Cross Domain)   对于端口和协议的不同,只能通过后台来解决.   一句话:同一个ip.同一个网络协议.同一个端口,三者都满足就是同一个域,否则就是 跨域问题了.而为什么开 ...

  4. 16.vue-cli跨域,swiper,移动端项目

    ==解决跨域:== 1.后台 cors cnpm i -S cors 2.前端 jsonp 3.代理 webpack: myvue\config\index.js 找 proxyTable proxy ...

  5. Geoserver跨域问题

    1 Geoserver位war包,使用Tomcat发布的情况 由于geoserver为war形式,需要解决tomcat跨域问题,geoserver版本为2.9.1. (1)下载跨域war包 下载cor ...

  6. 基于nodejs中实现跨域的方法

    一般情况下跨域是通过ajax的方式请求数据,通过js在不同的域之间进行数据传输或者通信: 只有通过ajax方式获取请求的时候才会有跨域问题需要解决: 例如在本地模拟两个服务端. 一个服务端去通过aja ...

  7. Qt(QtWebEngine)加载本地网页跨域问题的总结

    目录 1. 概述 2. 详论 2.1. 传参 2.2. JS module 3. 建议 4. 参考 1. 概述 浏览器直接加载本地网页的时候,如果网页涉及到加载本地资源(如图片),会出现跨域的问题.Q ...

  8. Ajax及跨域

    概念 Ajax Ajax,Asynchronous JavaScript and XML,字面意思:异步的 JavaScript 和 XML,是指一种创建交互式网页应用的网页开发技术. 用于异步地去获 ...

  9. Taurus.MVC 2.2 开源发布:WebAPI 功能增强(请求跨域及Json转换)

    背景: 1:有用户反馈了关于跨域请求的问题. 2:有用户反馈了参数获取的问题. 3:JsonHelper的增强. 在综合上面的条件下,有了2.2版本的更新,也因此写了此文. 开源地址: https:/ ...

随机推荐

  1. 奇妙的算法【10】TX--有效号码、最,小耗时、最小差值、差值输出、异或结果

    昨晚刚刚写的几道算法题,难度也还行,就是全部AC有些困难,当时第一题AC.第二题AC 60%,第四题AC 40%,第五题没有时间写完了,这个应该全部AC了:其中第三题没有写出来 1,是否存在符合规范的 ...

  2. 博客自定义1-皮肤模板 基于SimpleMemory 添加到顶部小按钮

    周五公司事不是很紧,打算好好弄下自己的博客,这是自己学习和记录分享地方, 首先请记得申请js权限,默认不支持的,博主是已经申请通过后的样子 接着先选择cnblogs一个现有的模板,我这个就是在他的模板 ...

  3. 图像识别领域的一些code

    图像识别领域的一些code 转自:http://blog.163.com/pz124578@126/blog/static/23522694201343110495537/ ps:里面的一些方法都是目 ...

  4. VisualSVN 关于权限(第1篇)

    总结权限的规则: 1.子目录权限完全覆盖父目录权限.以子目录的权限为最终.仓库本身就是祖宗,所有的子目录继承他的权限,所有仓库本身必须增加可访问权限,要么everyone ,要么增加全部团队成员. 2 ...

  5. vs-code 的常用插件

    最近编辑器转移至VS-Code上面了,为什么抛弃sublime呢,因为,sublime在项目逐渐变大的过程中(项目已上万行,还在不停继续变大),sublime会出现卡顿,反应缓慢,甚至未响应状态,基于 ...

  6. Visual Studio快捷键使用

    1. 注释相关     添加注释:Ctrl + K,C     取消注释:Ctrl + K,U 2. 格式化相关     格式化代码:Ctrl + K,D 3. 智能提示相关     Ctrl + J

  7. OpenCV手工实现灰度及RGB直方图

    手工实现灰度及RGB直方图 !库 1. 灰度图像直方图 算法 1. 图片灰度化: 2. 遍历Mat,统计各灰度级的像素个数: 3. 根据opencv画点线函数,绘制坐标轴及像素分布图 源码(编译环境: ...

  8. SpringCloud之Config配置中心+BUS消息总线原理及其配置

    一.配置中心作用 在常规的开发中,每个微服务都包含代码和配置.其配置包含服务配置.各类开关和业务配置.如果系统结构中的微服务节点较少,那么常规的代码+配置的开发方式足以解决问题.当系统逐步迭代,其微服 ...

  9. 通用mapper接口已经写好的 根据 list 集合查询 相应数据

    package tk.mybatis.mapper.additional.idlist; import org.apache.ibatis.annotations.Param; import org. ...

  10. 用python实现新词发现程序——基于凝固度和自由度

    互联网时代,信息产生的数量和传递的速度非常快,语言文字也不断变化更新,新词层出不穷.一个好的新词发现程序对做NLP(自然预言处理)来说是非常重要的. N-Gram加词频 最原始的新词算法莫过于n-gr ...