J'ai développé une application AJAX utilisant les technologies jQuery et Microsoft Seadragon.
Je dois avoir accès à la fonction de toile html5 toDataURL.
Avec Google Chrome, la même règle d'origine s'applique à cette fonction, ce qui signifie qu'une page exécutée localement (avec le file:///
dans l'URL) n'a pas réussi à satisfaire la même règle d'origine et qu'une exception est levée.
Avec Chrome 7, le démarrage de l'application avec l'option --allow-file-access-from-files
permet d'appeler canvas.toDataURL()
à partir de fichiers locaux.
Cependant, il semble que le fait de démarrer la version bêta de Chrome 8 avec la même option (--allow-file-access-from-files
) n'autorise pas l'appel canvas.toDataURL()
sur le fichier local.
Chrome a-t-il abandonné l'option --allow-file-access-from-files
ou vient-elle d'être désactivée puisqu'il s'agit d'une version bêta et non d'une version complète?
Merci!
En regardant les problèmes pour cela montre que tout le --allow-file-access-from-files
chose a été précipité.
À votre problème
En effet, il semble que ce soit quelque chose de spécial pour la version bêta, j’utilise Chrome 8.0.552.5 dev
ici et --allow-file-access-from-files
fonctionne comme prévu, j’ai également testé cela avec Chromium 9.0.592.0 (66889)
, s’il fonctionnait également comme prévu.
Je soupçonne qu'il y a eu quelques changements sur la branche dev. Malheureusement, il est presque impossible de trouver quelque chose dans le suivi des problèmes de chrome.
Avez-vous fermé toutes les instances de chrome avant d'ouvrir avec l'argument de ligne de commande? Vous devez faire cela pour que ce paramètre fonctionne.
Pour résumer toutes les réponses jusqu'à présent.
Avant d'exécuter chrome, assurez-vous qu'aucun processus chrome n'est en cours d'exécution.
Les fenêtres
-allow-file-access-from-files
(avec un tiret)
Linux
--allow-file-access-from-files
(avec deux tirets)
J'ai trouvé un moyen de contourner le problème en utilisant une approche JavaScript/Flash. Si flash est compilé dans le sandbox de sécurité local uniquement, il dispose d'un accès complet aux fichiers locaux. À l'aide de ExternalInterface, JavaScript peut demander à une application Flash de charger un fichier, et Flash peut renvoyer le résultat à JavaScript.
Vous pouvez trouver mon implémentation ici: https://code.google.com/p/flash-loader/