【发布时间】:2012-03-03 11:56:56
【问题描述】:
我的网站上有一个画布元素,对于某些用户来说,它会引发跨域异常。该问题在 Chrome、Firefox 和 Safari 中出现,但我自己无法在任何浏览器中复制它。
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 会导致跨域问题?
谢谢。
【问题讨论】:
标签: google-chrome canvas https cross-domain