<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path> </svg>
讯享网
环境是vue2 + python + django + nginx + uwsgi的线上服务环境。
最近在项目中发现一个关于html2canvas的问题,生成图片的时候莫名的出现跨域问题。就是页面有其他图片的时候,生成图片会报跨域问题,如下图:
注意:页面图片是直接从访问的django的静态文件夹下的图片的。如:http://xxxx/static/xxx.png

讯享网
这包括已经给django添加了白名单,在django导入了中间件等操作,线下环境测试是正常的,线上生产环境就会出问题,使用了网上普遍的办法如下,都没有生效。
在html2canvas添加useCORS的方式,并且在img标签中添加crossorigin=“anonymous”如下:
讯享网
上面标签中拼接了一个new Date().getTime(),这是为了防止浏览器缓存,每次都是重新拿图片,后面接了一个crossorigin=“anonymous”这个属性会导致图片拿不到,但是我这里会继续报跨域问题。
基于上面添加useCORS的配置,通过Nginx模块Http_Headers_Module来添加Access-Control-Allow-Origin允许的地址。

讯享网
这些配置完成后,依然报跨域错误。
讯享网
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/167041.html