我有一个扩展程序,可以在页面上创建一个跨域iframe。然后,用户可以在页面上选择图像,并将它们复制到iframe中。我这样做的方法是复制图像上的所有属性(类,样式,src等),添加" crossorigin =' anonymous'",然后创建图像,像这样:
//obj contains all of the DOM properties from the original image tag
var src;
if (obj.nodeType === 1 && obj.tagName) {
if (obj.attributes) {
//Check for cross-origin
src = obj.attributes.src ? 'src' : (obj.attributes.href ? 'href' : null);
if (src) {
obj.attributes[src] = obj.attributes[src] + '?dummy=232';
if (obj.attributes.crossorigin) { delete obj.attributes.crossorigin; }
node.setAttribute('crossorigin', 'anonymous');
}
for (var a in obj.attributes) {
node.setAttribute(a, obj.attributes[a]);
}
}
}
但是,我仍然收到以下错误:
来自原作的图片' http://www.slate.com'已被跨源资源共享策略阻止加载:No' Access-Control-Allow-Origin'标头出现在请求的资源上。起源&#t; ttp:// localhost'因此不允许访问。
为了记录,here is the article I'm using for testing at the moment(我试图复制两个滑雪女孩的第一张图片)。这个错误是否意味着Slate已经阻止了服务器端的所有跨源图像加载,并且我在另一个框架中加载该图像时我是SOL?