快速解决Canvas.toDataURL 图片跨域的问题
如题,在将页面的图片地址进行本地输出时(Html2Canvas.js),因不同源存在跨域问题,会出现toDataURL访问权限问题:
【Redirect at origin 'http://sub1.xx.com' has been blocked from loading by Cross-Origin Resource Sharing policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://sub2.xx.com' is therefore not allowed access.】
解决方案:
根据错误分析需要在控制头增加“Access-Control-Allow-Origin”,即允许访问源文件权限,那么我们对这个页面【注意是要输出页面的图片】这样处理:
var img = new Image; img.onload = myLoader; img.crossOrigin = 'anonymous'; //可选值:anonymous,* img.src = 'http://myurl.com/....';
或者是HTML中
<img src="" id="imgclcd" crossorigin="anonymous">
核心是请求头中包含了 Origin: "anonymous"或"*" 字段,响应头中就会附加上 Access-Control-Allow-Origin: * 字段,问题解决。
以上这篇快速解决Canvas.toDataURL 图片跨域的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
深入理解JavaScript系列(44):设计模式之桥接模式详解
这篇文章主要介绍了深入理解JavaScript系列(44):设计模式之桥接模式详解,桥接模式(Bridge)将抽象部分与它的实现部分分离,使它们都可以独立地变化,需要的朋友可以参考下2015-03-03深入理解JavaScript系列(18):面向对象编程之ECMAScript实现
这篇文章主要介绍了深入理解JavaScript系列(18):面向对象编程之ECMAScript实现,本文讲解了数据类型、原始值类型、Object类型、动态性、内置对象、原生对象及宿主对象等内容,需要的朋友可以参考下2015-03-03
最新评论