Jeśli tworzysz lokalnie szybki fragment kodu i używasz przeglądarki Chrome, jest problem. jeśli Twoja strona ładuje się przy użyciu adresu URL w postaci „file: // xxxx”, wówczas próba użycia metody getImageData () w obszarze roboczym zakończy się niepowodzeniem i zgłosi błąd zabezpieczeń między źródłami, nawet jeśli obraz jest pobierany z tego samego katalogu na komputerze lokalnym jako strona HTML renderująca płótno. Jeśli więc Twoja strona HTML jest pobierana z, powiedz:
file: // D: /wwwroot/mydir/mytestpage.html
a Twój plik JavaScript i obrazy są pobierane z, powiedzmy:
file: // D: /wwwroot/mydir/mycode.js
file: // D: /wwwroot/mydir/myImage.png
następnie pomimo faktu, że te drugorzędne jednostki są pobierane z tego samego źródła, nadal zgłaszany jest błąd zabezpieczeń.
Z jakiegoś powodu, zamiast prawidłowo ustawić źródło, Chrome ustawia atrybut origin wymaganych encji na „null”, uniemożliwiając testowanie kodu wykorzystującego metodę getImageData (), po prostu otwierając stronę HTML w przeglądarce i debugując lokalnie.
Z tego samego powodu nie działa też ustawienie właściwości crossOrigin obrazu na „anonymous”.
Nadal próbuję znaleźć obejście tego problemu, ale po raz kolejny wydaje się, że lokalne debugowanie jest renderowane tak bolesnie, jak to tylko możliwe przez implementatory przeglądarek.
Właśnie próbowałem uruchomić mój kod w przeglądarce Firefox i Firefox robi to dobrze, rozpoznając, że mój obraz pochodzi z tego samego źródła co skrypty HTML i JS. Dlatego z zadowoleniem przyjąłbym kilka wskazówek, jak obejść problem w Chrome, ponieważ w tej chwili, gdy Firefox działa, jego debugger jest boleśnie powolny, do tego stopnia, że jest o jeden krok usuwany z ataku typu „odmowa usługi”.