Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.09.2017, 22:33
Кандидат Javascript-наук
Отправить личное сообщение для dima85 Посмотреть профиль Найти все сообщения от dima85
 
Регистрация: 14.03.2010
Сообщений: 118

SecurityError грузим картинки с других сайтов
У меня достаточно большой код, покажу самое главное.
img.addEventListener('click', function(e){
  // chrome
  if(e.offsetX) {x=e.offsetX;y=e.offsetY;}
  // firefox
  else if(e.layerX) {x=e.layerX;y=e.layerY;}
  useCanvas(canvas,img,function(){
   // get image data
   var p = canvas.getContext('2d').getImageData(x, y, 1, 1).data;
   if (valID){val(valID, rgbToHex(p[0],p[1],p[2]));}
  });
 },false);
function useCanvas(el,image,callback){
 el.width = image.width;
 el.height = image.height;
 el.getContext('2d').drawImage(image, 0, 0, image.width, image.height);
 return callback();
}


С картинками которые на сервере скрипт работает хорошо, но когда я пытаюсь загрузить картинку с другого сайта появляется ошибка SecurityError: The operation is insecure.
В этой строчке:
var p = canvas.getContext('2d').getImageData(x, y, 1, 1).data;

Заменил useCanvas на вот такую функцию:
function useCanvas(el,image,callback){
 image.crossOrigin = "anonymous";  // This enables CORS
 image.onload = function (event) {
   el.width = image.width;
   el.height = image.height;
   el.getContext('2d').drawImage(image, 0, 0, image.width, image.height);
   return callback();
 }
};

Теперь ошибок нет, но как только я нажимаю на эту фото, оно пропадает. Что я делаю не так?

Последний раз редактировалось dima85, 13.09.2017 в 23:05.
Ответить с цитированием
  #2 (permalink)  
Старый 14.09.2017, 14:24
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 3,643

dima85,
значит "другой сайт" не разрешает этого
Ответить с цитированием
  #3 (permalink)  
Старый 14.09.2017, 16:44
Кандидат Javascript-наук
Отправить личное сообщение для dima85 Посмотреть профиль Найти все сообщения от dima85
 
Регистрация: 14.03.2010
Сообщений: 118

Как-то можно обойти это?
Ответить с цитированием
  #4 (permalink)  
Старый 14.09.2017, 18:12
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 3,643

dima85,
проксировать каждую картинку, либо через свой сервер в общих чертах так, либо через чужой оказывающий такие услуги.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отображение каталогов с других сайтов на одном Alexcov Оффтопик 4 29.05.2016 11:07
Обработка данных с других сайтов komuk18 Общие вопросы Javascript 1 19.01.2015 05:20
yandex maps+ видеокамеры с других сайтов? MaxyMax Firefox/Mozilla 1 16.05.2012 11:02
Контент для других сайтов gfireghost Events/DOM/Window 2 26.08.2011 15:49
Проблема с подключаемыми js-файлами с других сайтов Александра Воробьева Общие вопросы Javascript 4 05.03.2011 19:48