好的,所以我有一个codeigniter应用程序。现在在page1上,我有一个ajax,它从page2获取一个充满google云端cdn图像的html内容,然后将内容附加到div。我正在使用html2canvas将该div内容获取到page1上的画布。现在很明显,此时第1页上的画布已被污染。我的问题是如何使toDataUrl
工作!需要一个画布。
这是我到目前为止尝试过的:
已使用html2canvas这样添加了一个代理(都是php n js)..它帮助我摆脱了html2canvas无法从CDN加载图像的问题-
html2canvas(div_content,{
proxy: "proxy.js",
useCORS: true,allowTaint: true}).then(function(canvas) {
var img=canvas.toDataurl();
});
试图在以下两种同时为page1和page2提供服务的控制器构造函数上添加跨域标头,但无效。
I。 header("Access-Control-Allow-Methods: GET, OPTIONS");
header("Access-Control-Allow-Headers: Content-Type, Content-Length, Accept-Encoding");
II。 $this->output->set_header('Access-Control-Allow-Origin: *');
P.S:不要提供将图像下载到本地存储中并在第2页上使用它们的解决方案,因为我正在使用Google App Engine标准,并且只能在存储桶中写入/存储文件!
答案 0 :(得分:0)
由于时间不足,我不得不实施一个显而易见的快速解决方案。由于使用js加载后没有为所有图像元素将cross-origin
设置为anonymous
的奢侈,所以我没有将其全部转换为{{1 }}编码的数据网址。如果有人可以提供经过测试的解决方案,请稍后再做。但是,如果有人着急,那么这是一个快速的解决方案。
base64
P.S:我所有的图像都是png