最近在做公司项目在线海报编辑的时候,tuDataUrl无法将图片转为图片进行预览,这个的原因网上有很多的解释以及解决办法,这里就不再细说。
但是按照网上的方法在前端js使用canvas绘制图片时添加crossOrigin=“Anonymous” ,画布canvas会在绘制oss上的图片时,报错has been blocked from loading by Cross-Origin Resource Sharing policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource. Origin ‘’ is therefore not allowed access.
解决办法:
- 首先在前端绘制图片的时候添加crossOrigin=“Anonymous” 。
- 其次在阿里云的oss设置中配置允许跨域访问。
- 做完这两步如果还是无法绘制图片的话,那就要检查oss是否开启CDN加速缓存,如果开启CDN加速缓存的关掉CDN,或者在CDN的设置里配置缓存头Access-Control-Allow-Origin的值为“*”,这样不出意外canvas就可以绘制图片了。(我遇到的问题就是oss开启了允许跨域访问,但是oss还设置的cdn加速,并且cdn还未设置缓存头,存在跨域问题,导致图片无法在画布上绘制)。