时间:2019-12-08来源:系统城作者:电脑系统城
HTML 规范文档为 images 引入了 crossorigin 属性, 通过设置适当的头信息 CORS , 可以从其他站点加载 img 图片, 并用在 canvas 中,就像从当前站点(current origin)直接下载的一样.
crossorigin 属性的使用细节, 请参考CORS settings attributes.
什么是 “被污染的(tainted)” canvas?
尽管没有CORS授权也可以在 canvas 中使用图像, 但这样做就会污染(taints)画布。 只要 canvas 被污染, 就不能再从画布中提取数据, 也就是说不能再调用 toBlob(), toDataURL() 和 getImageData() 等方法, 否则会抛出安全错误(security error).
这实际上是为了保护用户的个人信息,避免未经许可就从远程web站点加载用户的图像信息,造成隐私泄漏。
(译者注: 如果用户登陆过QQ等社交网站, 假若不做保护 ,则可能打开某个网站后,该网站利用 canvas 将用户的图片信息获取,上传,进而引发泄露.)
示例: 从其他站点保存图片
首先, 图片服务器必须设置相应的 Access-Control-Allow-Origin
响应头。添加 img 元素的 crossOrigin 属性来请求头。比如Apache服务器,可以拷贝HTML5 Boilerplate Apache server configs 中的配置信息, 来进行回应:
这些设置生效之后, 就可以像本站的资源一样, 保存其他站点的图片到 DOM存储 之中(或者其他地方)。
浏览器兼容性
Desktop
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | 13 | 8 | No support | No support | ? |
Mobile
Feature | Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|
Basic support | ? | ? | ? | ? | ? |
另请参见
Chrome:在WebGL中使用跨域图片
HTML规范-crossorigin属性
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
2020-03-07
vue前端项目开发环境搭建并用npm方式运行2020-02-24
配置 idea springboot热重启2019-12-08
element.style内联样式的修改方法教程众所周知当我们从客户端向服务器发送请求时,服务器向我们返回状态码,状态码就是告诉我们服务器响应的状态,通过它我们就可以知道当前请求是成功了还是出现了什么问题 ,下面这篇文章就给大家详细介绍了关于服务器返回的十...
2019-12-08