對於所有的意圖和目的,假設我有一個帶有輸入字段的網頁,用戶可以在其中輸入圖像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?)。我的問題是:我真的需要支持跨網域的網址!
我該怎麼辦?