跨域共享策略 - 在 Chrome 上使用 color-thief.js 加载颜色
Posted
技术标签:
【中文标题】跨域共享策略 - 在 Chrome 上使用 color-thief.js 加载颜色【英文标题】:cross-origin sharing policy - loading colors with color-thief.js on Chrome 【发布时间】:2013-04-22 20:27:25 【问题描述】:我正在尝试对图像进行颜色分析,但 Chrome 的该死的跨域共享策略阻碍了http://jsfiddle.net/mrcactu5/d6Qka/15/
Cross-origin image load denied by Cross-Origin Resource Sharing policy.
我曾在 *** 上询问过,并在以前的版本中修复了它。 http://jsfiddle.net/mrcactu5/d6Qka/6/
var image = new Image();
image.crossOrigin = '';
image.src = 'http://upload.wikimedia.org/wikipedia/commons/0/07/Honeycrisp-Apple.jpg';
image.width=200;
基本上,我的脚本会从 Tumblr 下载图片链接并运行 color-thief.js。够简单吧?
imgs = Array(); // stores image links
$.getJSON(url, function(data)
for(var i = 0; i < data.response.length; i++)
if(data.response[i].photos != undefined)
//console.log(data.response[i].photos[0].alt_sizes[0].url);
imgs.push(data.response[i].photos[0].alt_sizes[0].url);
).success( function(imgs) analyze(imgs); );
【问题讨论】:
使用代理,例如Simple php Proxy 根本不清楚这里的问题是什么。究竟是什么不工作?你遇到了什么错误? 【参考方案1】:除非您使用document.domain 设置,否则不要认为您可以绕过跨域错误。这已被问到here、here 和here。
您可以查看一个执行类似操作的不同 javascript 库,演示 http://www.maxnov.com/getimagedata/#examples-2
您也可以run your scripts locally。
【讨论】:
以上是关于跨域共享策略 - 在 Chrome 上使用 color-thief.js 加载颜色的主要内容,如果未能解决你的问题,请参考以下文章
新版本Chrome同源策略跨域问题处理No ‘Access-Control-Allow-Origin‘ header is present on the requested resource.