canvas toDataUrl 跨域問題


使用canvas 的 toDataUrl方法會遇到跨域問題

chrome 會報下面的錯誤:

 Uncaught SecurityError: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported.

 

Firefox 會報下面的錯誤:

SecurityError: The operation is insecure.

 

解決方案分兩步:

1、在服務端設置響應頭部 

Access-Control-Allow-Origin: *

2、js設置image crossOrigin 為 Anonymous

 

    image.crossOrigin = "Anonymous";
    image.onload = function(){
        context.drawImage(this, 0, 0, 400, 300);
        var base64Url = canvas.toDataURL("image/png");
        console.log(base64Url);
    };
    image.src = imageSrc;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM