Maison > interface Web > js tutoriel > Voici quelques titres basés sur des questions qui correspondent au contenu de l'article : * Comment corriger les erreurs « Tainted Canvas » lors de l'utilisation de « getImageData() » avec des images d'origine croisée ? * Pourquoi ne puis-je pas utiliser `getImageD

Voici quelques titres basés sur des questions qui correspondent au contenu de l'article : * Comment corriger les erreurs « Tainted Canvas » lors de l'utilisation de « getImageData() » avec des images d'origine croisée ? * Pourquoi ne puis-je pas utiliser `getImageD

Linda Hamilton
Libérer: 2024-10-26 09:06:02
original
512 Les gens l'ont consulté

Here are a few question-based titles that fit the article content:

* How to Fix

Dépannage de l'erreur getImageData() : toile contaminée à partir de données d'origine croisée

Arrière-plan :

Vous rencontrez l'erreur " Erreur de sécurité non détectée : échec de l'exécution de « getImageData » sur « CanvasRenderingContext2D » : le canevas a été entaché de données d'origine croisée » lors de l'utilisation de .getImageData() sur un canevas avec une image provenant d'une URL d'origine croisée.

Problème :

Le problème « d'origine croisée » se pose car le domaine de l'image est différent du domaine actuel. Cette mesure de sécurité empêche l'accès non autorisé aux ressources d'autres domaines.

Solution :

Pour résoudre le problème, vous pouvez empêcher le canevas d'être corrompu en définissant le crossOrigin de l'image. propriété sur "Anonyme":

var img = new Image();
img.crossOrigin = "Anonymous"; // Prevents tainting
img.src = "https://cross-origin-image.example.com/image.jpg";
Copier après la connexion

Configuration côté serveur :

De plus, le serveur distant hébergeant l'image doit définir l'en-tête suivant :

Access-Control-Allow-Origin: *
Copier après la connexion

Cet en-tête donne accès à l'image depuis n'importe quelle origine, lui permettant d'être chargée dans le canevas sans l'entacher.

Exemple :

Le Le sélecteur de fichiers Dropbox, lors de l'utilisation de l'option « lien direct », définit les en-têtes crossOrigin et Access-Control-Allow-Origin appropriés. Cela permet au code javascript de récupérer des images de Dropbox et de les manipuler dans un canevas sur un domaine différent.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal