我的網站上有一個canvas元素,對於某些用戶來說,它會拋出跨域異常。這個問題發生在Chrome,Firefox和Safari上,但我無法在任何瀏覽器中自行復制它。爲什麼context.getImageData()爲我在https地址上引發跨域異常?
從Chrome中的輸出控制檯:
Unable to get image data from canvas because the canvas has been tainted by cross-origin data.
錯誤是由圖書館StackBlur.js,它調用imageData = context.getImageData(top_x, top_y, width, height);
然而拋出,在網站上使用的圖片都在同一個域,協議和端口。路徑由Rails生成。主要路徑是像https://myappp.com/
和成像路徑就像https://myapp.com/assets/promo/slideshow/slides/myslideimage.jpg
我們的分段站點部署完全相同的代碼(不使用HTTPS)http://staging.myapp.com/
與像http://myapp.com/assets/promo/slideshow/slides/myslideimage.jpg
結果中沒有任何錯誤圖像路徑。
爲什麼使用HTTPS會導致跨域問題?
謝謝。