Selesaikan ralat getImageData(): kanvas dicemari oleh data merentas domain
P粉343141633
P粉343141633 2023-08-29 12:52:11
0
1
475

Kod saya berfungsi dengan baik pada localhost tetapi tidak pada tapak web.

Saya mendapat ralat ini daripada konsol, untuk baris ini .getImageData(x,y,1,1).data:

Uncaught SecurityError: Gagal melaksanakan 'getImageData' pada 'CanvasRenderingContext2D': Kanvas telah dicemari oleh data silang asal.

Sebahagian daripada kod saya:

jQuery.Event.prototype.rgb=function(){ var x = this.offsetX ||. (this.pageX - $(this.target).offset().left),y = this.offsetY || (this.pageY - $(this.target).offset(). atas); jika (this.target.nodeName!=="CANVAS")mengembalikan null; kembalikan this.target.getContext('2d').getImageData(x,y,1,1).data; }

Nota: URL imej saya (src) berasal daripada URL subdomain

P粉343141633
P粉343141633

membalas semua (1)
P粉465675962

Seperti yang orang lain katakan, anda "mencemarkan" kanvas dengan memuatkan daripada domain silang asal.

https://developer.mozilla.org/en-US/docs/ HTML/CORS_Enabled_Image

Namun, anda boleh mencegah perkara ini dengan hanya menetapkan:

img.crossOrigin = "Anonymous";

Ini hanya berfungsi jika pelayan jauh menetapkan pengepala berikut dengan betul:

Access-Control-Allow-Origin "*"

Pemilih failDropbox apabila menggunakan pilihan Pautan TerusIni adalah contoh yang bagus. Saya menggunakan ini dioddprints.comuntuk menyedut imej daripada URL imej dropbox jauh ke dalam kanvas saya dan kemudian menyerahkan kembali data imej ke pelayan saya. Semua ditulis dalam JavaScript

    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan
    Tentang kita Penafian Sitemap
    Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!