Изображения Firefox Cross Domain испорчены

Это работает в Chrome, но не в Firefox. Для параметра Access-Control-Allow-Origin установлено значение *, а изображения загружаются с параметром crossOrigin, установленным на анонимный, однако при рисовании изображений на холсте в Firefox они портят холст. Код для загрузки изображения выглядит следующим образом:

var image = new Image();
image.onload = loadCallback;
image.crossOrigin = "anonymous";
image.src = imageSrc;

Несколько вопросов:

  1. Есть ли что-то, что мне не хватает, что характерно для Firefox? Требуется ли больше заголовков, чем Access-Control-Allow-Origin?
  2. Есть ли способ определить из загруженного изображения, что оно испорчено (было бы полезно для отладки).
  3. Доменное имя для серверов одинаковое, это просто разные поддомены (например, images.example.com и mysite.example.com), есть ли способ использовать это в своих интересах или мне действительно нужно иметь прокси-сервер для сделать переход и просто забыть о решении проблем CORS?

person Kris Erickson    schedule 28.11.2011    source источник
comment
Какая версия фаерфокса? Это было исправлено в последних нескольких выпусках.   -  person AshleysBrain    schedule 28.11.2011
comment
Firefox 8. Я создаю что-то на будущее, поэтому мне нужны ответы, которые работают в последней версии Firefox.   -  person Kris Erickson    schedule 28.11.2011


Ответы (1)


В Firefox 9 была добавлена ​​поддержка предотвращения загрязнения холста при отрисовке изображений с поддержкой CORS. См. https://bugzilla.mozilla.org/show_bug.cgi?id=685518

Поэтому, если вы тестируете Firefox 8, это не сработает. Попробуйте бета-версию Firefox 9?

person Boris Zbarsky    schedule 28.11.2011
comment
Это верно для PNG и JPG, но не для изображений SVG, они все равно будут портить холст. (Я думаю, это потому, что они могут содержать посторонние предметы внутри) - person brettlaforge; 20.03.2013
comment
@brettlaforge Это было верно в Firefox 10, но было исправлено с Firefox 11, более года назад. См. bugzilla.mozilla.org/show_bug.cgi?id=672013 . Однако в WebKit все еще есть похожая ошибка. - person Boris Zbarsky; 20.03.2013