Nếu bạn đang phát triển một đoạn mã nhanh cục bộ và bạn đang sử dụng Chrome, thì đã xảy ra sự cố. nếu trang của bạn tải bằng URL có dạng "tệp: // xxxx", thì việc cố gắng sử dụng getImageData () trên canvas sẽ không thành công và gây ra lỗi bảo mật nguồn gốc chéo, ngay cả khi hình ảnh của bạn đang được tìm nạp từ cùng một thư mục trên máy cục bộ của bạn dưới dạng trang HTML hiển thị canvas. Vì vậy, nếu trang HTML của bạn được tải xuống, hãy nói:
tệp: // D: /wwwroot/mydir/mytestpage.html
và tệp Javascript và hình ảnh của bạn đang được tìm nạp từ, giả sử:
tệp: // D: /wwwroot/mydir/mycode.js
tệp: // D: /wwwroot/mydir/myImage.png
thì mặc dù thực tế là các thực thể thứ cấp này đang được tìm nạp từ cùng một nguồn gốc, lỗi bảo mật vẫn được đưa ra.
Vì một số lý do, thay vì đặt gốc chính xác, Chrome đặt thuộc tính gốc của các thực thể cần thiết thành "null", khiến không thể kiểm tra mã liên quan đến getImageData () chỉ bằng cách mở trang HTML trong trình duyệt của bạn và gỡ lỗi cục bộ.
Ngoài ra, đặt thuộc tính crossOrigin của hình ảnh thành "ẩn danh" không hoạt động, vì lý do tương tự.
Tôi vẫn đang cố gắng tìm cách giải quyết cho vấn đề này, nhưng một lần nữa, có vẻ như việc gỡ lỗi cục bộ đang được trình triển khai trình duyệt hiển thị hết mức có thể.
Tôi vừa thử chạy mã của mình trong Firefox và Firefox đã làm đúng, bằng cách nhận ra rằng hình ảnh của tôi có cùng nguồn gốc với các tập lệnh HTML và JS. Vì vậy, tôi hoan nghênh một số gợi ý về cách giải quyết vấn đề trong Chrome, vì hiện tại, trong khi Firefox hoạt động, trình gỡ lỗi của nó rất chậm, đến mức bị xóa một bước khỏi cuộc tấn công từ chối dịch vụ.