๊ฐœ๋ฐœ/โŒ ์˜ค๋ฅ˜ ๋…ธํŠธ

[html2Canvas] Unable to get image data from canvas because the canvas has been tainted by cross-origin data ์˜ค๋ฅ˜ / safari์—์„œ ์ด๋ฏธ์ง€๋ฅผ ์ œ๋Œ€๋กœ ํ˜ธ์ถœํ•˜์ง€ ๋ชป ํ•  ๋•Œ

๋ฐ(Ming) ๐Ÿˆ‍โฌ› 2023. 12. 5. 13:54
728x90
๋ฐ˜์‘ํ˜•

 

 

โ€ผ๏ธ ๋ฌธ์ œ์ƒํ™ฉ

canvas๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ด๋ฏธ์ง€๋ฅผ ๊ทธ๋ฆฌ๊ณ  ๊ทธ๋ ค์ง„ ์ด๋ฏธ์ง€๋ฅผ ์บก์ณํ•˜๋Š” ์ž‘์—…์„ ํ•˜๋Š”๋ฐ, ์›น์ƒ์—์„œ ํฌ๋กฌ์œผ๋กœ ๊ฐœ๋ฐœํ•  ๋•Œ๋Š” ์ž˜ ๋˜๋Š”๋ฐ, ๋ฐฐํฌ ํ›„์— ios ์‚ฌํŒŒ๋ฆฌ์—์„œ ํ…Œ์ŠคํŠธํ•˜๋ฉด ๋ชจ๋“ ๊ฒƒ์ด ํ•˜์–—๊ฒŒ ๋‚˜์˜ค๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ–ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋“ฑ์žฅํ•˜๋Š” ์˜ค๋ฅ˜ ๋ฉ”์„ธ์ง€

Unable to get image data from canvas because the canvas has been tainted by cross-origin data

 

CORS ์˜ค๋ฅ˜๊ฐ€ ๋‚˜๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋ฏธ์ง€ ๋„๋ฉ”์ธ๊ณผ์˜ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๋“ฏ ํ–ˆ๋‹ค. 

html2Canvas ์˜ต์…˜๋„ ๋”ํ•ด๋ณด๊ณ  ์ด๋ฆฌ์ €๋ฆฌ ์ฐพ์•„๋ณด๋‹ค ์ฐพ์€ ํ•ด๊ฒฐ์ฑ…์€!!!!!

 

 

 

โœ… Solution

var url = 'http://url';
var imgObj = new Image();
imgObj.src = url + blar blar 
imgObj.crossOrigin = "anonymous"

 

img.crossOrigin : "Anonymous" ๋กœ ์ง€์ •ํ•ด์ฃผ๋Š” ๊ฒƒ. 

์•„๋ž˜์˜ ์Šคํƒ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๋ฅผ ์ฐธ์กฐํ•˜๋ฉด ๋œ๋‹ค. 

 

- https://stackoverflow.com/questions/22097747/how-to-fix-getimagedata-error-the-canvas-has-been-tainted-by-cross-origin-data

 

How to fix getImageData() error The canvas has been tainted by cross-origin data?

My code is working very well on my localhost but it is not working on the site. I got this error from the console, for this line .getImageData(x,y,1,1).data: Uncaught SecurityError: Failed to exe...

stackoverflow.com

 

 

 

 

 

728x90