J'injecte une image dans un canevas que je dois sécuriser en passant des cookies avec ma requête. Mon problème est que le constructeur Image ne semble pas envoyer les cookies avec la demande lorsque le src est défini. Les cookies ne sont pas accessibles via js, ils sont envoyés par le navigateur.Comment envoyer des cookies dans un constructeur Image()
var img = new Image();
img.setAttribute('crossOrigin', 'anonymous');
validateUrl(originalUrl, function (validatedUrl) {
img.src = validatedUrl; //GET fails after this happens
});
img.onload = function() {
drawImageProp(context, img);
}
Lorsque je mets l'URL dans une balise , elle apparaît très bien - dans ce cas, inspecter les appels réseau, je peux voir que les cookies vont avec la demande. Dans ce cas, le serveur me donne une erreur parce qu'il n'a pas reçu les cookies, et j'essaie de comprendre pourquoi ils ne vont pas. La requête ne va même pas dans un autre domaine dans ce cas. – Tantelope
@TanyaMounitsyna - J'ai exécuté mes propres tests dans un jsFiddle et les cookies sont envoyés lorsque je crée une image manuellement. Donc, je ne suis pas sûr de savoir comment reproduire votre problème. Dans mon test, j'ai dû ajouter un paramètre de requête aléatoire à la fin de l'URL juste pour vaincre le cache d'image afin de tester. Êtes-vous sûr de ne pas avoir de problèmes de mise en cache? – jfriend00
@TanyaMounitsyna - Si vous définissez l'attribut 'crossorigin' sur une image, les cookies ne sont pas envoyés avec la requête. C'est ainsi que cette fonctionnalité est écrite pour fonctionner. Voir la description par "anonyme" ici: https://developer.mozilla.org/fr-fr/docs/Web/HTML/Element/img#attr-crossorigin – jfriend00