2

html2canvas (html2canvas.hertzen.com から) を使用してスクリーンショットをキャプチャします。次のような奇妙なエラーが発生しました: 私の Web ページのコードは、ホスト A などの 1 つのホストに置かれています。私の Web ページに別のホスト (ホスト 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 に答える