Flutter 3.0.0 Web端报Refused to set unsafe header "Content-Length"求解决方案
解决Flutter 3.0.0 Web项目中"Refused to set unsafe header 'Content-Length'"错误
排查请求头设置:这个错误是浏览器安全策略禁止手动设置
Content-Length请求头导致的。检查你后续使用createObjectUrlFromBlob生成的URL时,有没有在请求(比如下载、上传)中手动添加这个头,直接移除即可。使用标准下载方式:如果是用这个Blob实现文件下载,建议用
dart:html的AnchorElement来处理,由浏览器自动管理请求头,避免触发安全限制。示例代码:
import 'dart:html' as html; void downloadFile(List<int> bytes, String fileName) { final blob = html.Blob([bytes]); final url = html.Url.createObjectUrlFromBlob(blob); final anchor = html.AnchorElement(href: url) ..setAttribute('download', fileName) ..click(); html.Url.revokeObjectUrl(url); // 记得释放URL资源,避免内存泄漏 }
- 升级Flutter版本:Flutter 3.0.0属于较早版本,后续稳定版本(比如3.3及以上)对Web平台的底层请求处理有优化,升级后可能直接解决这个由框架底层触发的错误。
内容的提问来源于stack exchange,提问作者Aka
相关产品推荐
相关产品推荐

