2

我使用 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
4

1 回答 1

4

如果您希望将跨域图像加载到画布,您需要使用跨域标题或在同一源下提供图像。Facebook 下的该图像带有以下标头选项集:

Access-Control-Allow-Origin:*

useCORS意思是,它可以与选项一起跨域加载。但是,您的主机 B 似乎没有为它们提供跨域标头集。

于 2013-08-11T12:12:19.530 回答