我使用html2canvas (来自html2canvas.hertzen.com)来捕获屏幕截图。我得到了这样一个奇怪的错误:我的网页代码被放在一个主机上,比如主机A。如果我的网页包含另一个主机上的图像,比如主机B,那么我会遇到这个错误:跨域图像加载被跨域资源共享策略拒绝
然而,令人困惑的是,如果主机B是facebook (我的图片是facebook https://fbcdn-profile-a.akamaihd.net/hprofile-ak-ash4/372701_100000684388457_1551561655_q.jpg的直接链接),那么错误就会消失。
我的函数
html2canvas([document.body], {
useCORS : true,
logging : true,
onrendered : function(canvas) {
document.body.appendChild(canvas);
var myImage = canvas.toDataURL("image/png");
window.open(myImage);
}
有没有人有线索?Tks
解决方案
html2canvas([document.body], {
useCORS: true,
proxy: "Server",
onrendered : function(canvas) {
ListUCapture = canvas.toDataURL("image/png");
}
});
Server is server of node.js
发布于 2013-08-11 20:12:20
如果您希望将跨域图像加载到画布上,则需要使用跨域headers或在同一源下为图像提供服务。Facebook下的图像设置了以下头选项:
Access-Control-Allow-Origin:*
也就是说,它可以使用useCORS
选项跨区域加载。但是,您的主机B似乎没有为它们提供设置了跨域标头的服务。
https://stackoverflow.com/questions/17990678
复制相似问题