J'écris une extension chrome qui fait ce qui suit:
XMLHttpRequest
total_encoded_data
<a href=data:application/octet-stream;charset=utf-8;base64,' + total_encoded_data+' download='file.bin'>Click to Download</a>
. Où total_encoded_data
est ajouté à href à l'aide de jQuery.J'ai trouvé, grâce à une recherche binaire manuelle, que si la taille de total_encoded_data
est supérieur à 2097100 caractères, je reçois un message Aw, Snap lorsque je clique sur le lien. Si la taille est plus petite, je peux télécharger comme prévu.
En plus de tester la taille du fichier, j'ai également utilisé atoi
pour m'assurer que l'encodage base64 est valide et qu'il fonctionne sans erreur.
Les messages Aw, Snap ne produisent aucun rapport de plantage dans chrome://crashes
ni aucune sortie inattendue dans le chrome_debug.log
Comment éviter un message Aw, Snap lorsque je sers un uri de données où la longueur de chaîne codée en base64 est supérieure à 2097100?
C'est un bug de chrome conn . La solution de contournement recommandée consiste à utiliser un RL blob . Voir aussi Création d'un blob à partir d'une chaîne base64 en JavaScript .