Попробуйте установить атрибут crossOrigin = "Anonymous"
для вашего тега изображения.
Также вы можете использовать drawImage()
холста. Пример кода, который загружает изображение и преобразует его в код base64, используемый FBInstant.shareAsync
в качестве полезной нагрузки:
var image = new Image();
image.crossOrigin = "Anonymous"; // img.cors must be after new Image()
image.src = "cross origin photo url here"; //src initiates download
image.addEventListener('load', function() {
ctx.save();
ctx.drawImage(image,25,25, 256,256, 135,110, 128,128);
ctx.restore();
base64Image = canvas.toDataURL();
});
Подробнее на MDN документы здесь . К вашему сведению: я создал изображение холста на лету, которое динамически получает фотографию профиля игрока, его имя и игровую оценку, чтобы поделиться ими в качестве изображения base64 в потоке мессенджера во время мгновенного игрового процесса. Я столкнулся с той же проблемой CORS, но решил ее, и теперь она работает в режиме реального времени.