我正在编写一个chrome扩展程序,它执行以下操作:
XMLHttpRequest
total_encoded_data
<a href=data:application/octet-stream;charset=utf-8;base64,' + total_encoded_data+' download='file.bin'>Click to Download</a>
向用户提供数据。使用jQuery将total_encoded_data
添加到href的位置。我通过手动二进制搜索发现,如果total_encoded_data
的大小大于2097100个字符,那么当我点击链接时,我会收到一条Aw,Snap消息。如果尺寸较小,那么我可以按预期下载。
除了测试文件大小外,我还使用atoi
来确保base64编码有效,并且它可以正常运行。
Aw,Snap消息不会在chrome://crashes
中生成任何崩溃报告,也不会在chrome_debug.log
中生成任何意外输出
如何在提供base64编码的字符串长度大于2097100的数据uri时避免使用Aw,Snap消息?
答案 0 :(得分:49)
这是一个known chromium bug。建议的解决方法是使用blob URL。另请参阅Creating a Blob from a base64 string in JavaScript。