对于所有的意图和目的,假设我有一个带有输入字段的网页,用户可以在其中输入图像URL,单击按钮,并在URL的另一端为资源提供数据URI(例如, Google徽标)。获取跨域内容的数据URI?
读书的时候,我了解到,你可以得到数据URI的图像,像这样:
function imageToDataURI(src,callback)
{
var canvas = document.createElement('canvas'),
img = document.createElement('img');
img.onload =
function()
{
canvas.width = img.width;
canvas.height = img.height;
canvas.getContext('2d').drawImage(img, 0, 0);
callback(canvas.toDataURL());
};
img.src = src;
}
然而,很多人(包括我自己)都得到“SECURITY_ERR:DOM异常18”,因为画布元素得到在跨域图像被绘制时受到污染,并且受污染的canvas会在canvas.toDataURL()上返回上述错误(请参阅Why does canvas.toDataURL() throw a security exception?)。我的问题是:我真的需要支持跨网域的网址!
我该怎么办?