2014-01-22 1 views
0

Как гласит название, я включил CORS для всех изображений, но я все еще получаю ошибки при попытке выбросить их на холст, а затем извлечь этот холст (Chrome и FF). Я побежал немного наркомана на одном из изображений, чтобы проверить это, и это, кажется, фактически возвращает правильные заголовки:CORS включен, но toDataURL все еще выдаёт предупреждение

Access-Control-Allow-Origin: *

Am I что-то не хватает?

+2

... и вы также указываете атрибут crossOrigin = "анонимный" на объектах изображения? Если это так, это не проблема, и нам нужен еще немного кода. – markE

+0

Это решило проблему, @markE. Спасибо. Я также пытаюсь раскрасить эти изображения с помощью PaintbrushJS, но теперь это дает мне «нагрузку на изображение с использованием кросс-оригинала, отвергаемую политикой совместного использования ресурсов Cross-Origin». Есть идеи? EDIT: Кажется, это может быть потому, что все мои изображения загружаются динамически через JS. – user1807782

ответ

1

Вы должны запрос использования CORS для сервера, просто добавьте этот атрибут тега изображения:

<img crossOrigin="anonymous" ... /> 

или динамически из JavaScript, используйте его в качестве свойства (предполагающей img создан или получен ранее) :

var img = new Image; 
img.onload = callback; 
img.crossOrigin = ''; /// = anonymous 
img.src = '...'; 

Если у вас есть несколько изображений для загрузки вы можете использовать загрузчик изображений, который поддерживает запрос кросс-происхождения (например, мой YAIL loader, где вы можете запросить все или отдельные изображения для загрузки с использованием CORS).

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