2013-08-15 2 views
2

Я с ума схожу с этой проблемой и надеюсь, что есть решение или обходное решение. У меня есть холст внутри iframe, в другом домене (по соображениям безопасности). На этом холсте показана анимация/рисунок Processing.js. Мне нужно разрешить холсту загружать файлы изображений, расположенные в том же домене.Canvas, iframe и Access-Control-Allow-Origin

index.html с iframe в domain.com

index.html с canvas в sub.domain.com

Теперь я знаю, что:

  1. холст может загрузить/визуализировать удаленное изображение, но не может получить доступ к данным удаленного изображения (пикселям).
  2. Canvas может полностью получить доступ к файлу изображения в том же домене, если он не воспроизводится в iframe (!?).
  3. Настройка заголовка Access-Control-Allow-Origin позволяет просто получить доступ к файлам в других доменах.
  4. Холст не поддерживает/не рассматривает заголовки Access-Control-Allow-Origin.

Есть ли способ обойти все эти ограничения безопасности и просто получить холст в iframe для загрузки файла изображения?

ответ

2

Я нашел решение своей проблемы (и увидел, что никто не ответил). На самом деле я что-то забыл ... Я использовал атрибут sandbox в теге iframe, и это было проблемой. После удаления изображения стали доступны на холсте, по крайней мере, в Firefox и Chrome (еще не тестировали IE). В любом случае атрибут sandbox по-прежнему имеет очень плохую поддержку и, вероятно, совершенно бесполезен в междоменном сценарии.

So. Я могу подтвердить, что с нормальным iframe (без параметра sandbox) нет проблем при загрузке изображений в canvas в пределах iframe, , если и только если изображение находится в том же домене страницы canvas.

Смежные вопросы