Tôi có đoạn mã sau đây và tôi đang cố gắng để chạy nó từ localhost (OSX, chạy XAMPP):context.getImageData() trên localhost?
var canvas = document.getElementById('mycanvas');
var cx = canvas.getContext('2d');
var myImg = new Image();
myImg.src = 'images/lion.jpg';
$(myImg).load(function() {
cx.drawImage(myImg, 0, 0);
var imgData = cx.getImageData(0,0,150,150);
});
Nhưng khi tôi chạy nó tôi nhận được lỗi này từ giao diện điều khiển:
Unable to get image data from canvas because the canvas has been tainted by cross-origin data.
site.js:11Uncaught Error: SECURITY_ERR: DOM Exception 18
Tôi đã tìm thấy một số câu hỏi tương tự ở đây và tôi biết rằng điều này có liên quan đến thực tế là tôi đang làm việc cục bộ và điều này sẽ không xảy ra nếu tôi đang cố truy cập hình ảnh từ cùng một miền. Tôi không biết điều này có hợp lý không, nhưng đó là điều tôi hiểu.
Câu hỏi của tôi là, làm thế nào tôi có thể thực hiện công việc này trong môi trường dev cục bộ?
hoạt động như một sự quyến rũ, cảm ơn một nhóm! –
Không phải lúc nào cũng có thể. Làm thế nào điều này có thể được làm việc xung quanh trong các tình huống chúng ta đang ở nơi chúng ta đặt một trang web trên một đĩa CD để chạy cục bộ trên một máy đích thông qua Autorun.inf và do đó không thể thiết lập một máy chủ hoặc dựa vào một (hoặc bất kỳ truy cập mạng nào) đang có sẵn? Làm việc một nét duyên dáng trong tất cả các trình duyệt khác nhưng trong Chrome console nói: "cảnh báo Kinetic: Không thể để có được URL dữ liệu Không thực thi 'toDataURL' bật 'HTMLCanvasElement':.. Bức tranh sơn dầu Tainted có thể không được xuất khẩu" lần Sad –
Mạng lặp (127.0.0.1) luôn khả dụng. – clowwindy