Якщо ви розробляєте швидкий фрагмент коду локально та користуєтеся Chrome, виникає проблема. якщо ваша сторінка завантажується за допомогою URL-адреси форми "file: // xxxx", тоді спроба використання getImageData () на полотні не вдасться, і викине помилку безпеки перехресного походження, навіть якщо ваше зображення отримується з того самого каталог на вашій локальній машині як сторінка HTML, що відображає полотно. Отже, якщо ваша сторінка HTML отримана, скажіть:
файл: // D: /wwwroot/mydir/mytestpage.html
а ваш файл і зображення Javascript отримуються, скажімо:
файл: // D: /wwwroot/mydir/mycode.js
файл: // D: /wwwroot/mydir/myImage.png
тоді, незважаючи на те, що ці вторинні сутності отримуються з того самого джерела, помилка безпеки все одно видається.
З якоїсь причини, замість правильного встановлення джерела, Chrome встановлює атрибут origin необхідних об’єктів на „нуль”, що робить неможливим тестування коду за участю getImageData (), просто відкривши сторінку HTML у вашому браузері та локально налагоджуючи.
Крім того, встановлення властивості crossOrigin зображення як "анонімне" не працює з тієї ж причини.
Я все ще намагаюся знайти обхідний шлях для цього, але ще раз здається, що розробники браузера роблять локальну налагодження якомога болючішою.
Я щойно спробував запустити свій код у Firefox, і Firefox це правильно зробив, визнавши, що моє зображення має те саме походження, що і сценарії HTML і JS. Тож я вітаю деякі підказки щодо того, як обійти проблему в Chrome, оскільки на даний момент, поки Firefox працює, його налагоджувач болісно повільний, аж до того, що він стає на крок від атаки відмови в обслуговуванні.