Если вы разрабатываете небольшой фрагмент кода локально и используете Chrome, возникает проблема. если ваша страница загружается с использованием URL-адреса вида «файл: // xxxx», то попытка использовать getImageData () на холсте не удастся и выдаст ошибку безопасности перекрестного происхождения, даже если ваше изображение извлекается из того же каталог на вашем локальном компьютере в качестве HTML-страницы, отображающей холст. Итак, если ваша HTML-страница получена, скажем:
файл: // D: /wwwroot/mydir/mytestpage.html
и ваш файл Javascript и изображения извлекаются, например:
файл: // D: /wwwroot/mydir/mycode.js
файл: // D: /wwwroot/mydir/myImage.png
тогда, несмотря на то, что эти вторичные объекты извлекаются из одного и того же источника, ошибка безопасности все равно возникает.
По какой-то причине вместо правильной установки источника Chrome устанавливает для атрибута origin необходимых сущностей значение «null», что делает невозможным тестирование кода с использованием getImageData (), просто открывая HTML-страницу в браузере и выполняя локальную отладку.
Кроме того, установка свойства crossOrigin изображения на «анонимный» не работает по той же причине.
Я все еще пытаюсь найти обходной путь для этого, но опять же, похоже, что локальная отладка выполняется разработчиками браузеров настолько болезненно, насколько это возможно.
Я только что попытался запустить свой код в Firefox, и Firefox понял, что мое изображение имеет то же происхождение, что и сценарии HTML и JS. Так что я бы приветствовал несколько советов о том, как обойти проблему в Chrome, так как на данный момент, пока Firefox работает, его отладчик мучительно медленный, вплоть до того, что от атаки отказа в обслуживании отделяется один шаг.