Flutter Web从URL加载数据失败问题求助
问题分析与解决思路
问题根源大概率出在302重定向的CORS处理上:你的API域名虽然返回了
access-control-allow-origin: *的CORS头,但浏览器处理302重定向时,会校验最终跳转的GCS签名URL对应的存储桶CORS配置,而非原API域名的。如果GCS存储桶没配置允许当前请求来源的CORS规则,浏览器就会拦截跨域请求,抛出XMLHttpRequest错误。快速验证方式:直接访问那个GCS签名URL,查看响应头里是否包含
access-control-allow-origin且值匹配你的请求来源(或设为*)。如果没有,那就是GCS的CORS配置缺失。解决步骤:
- 登录Google Cloud控制台,定位到对应的存储桶。
- 配置存储桶的CORS规则,添加允许的来源(比如你的前端域名,或者用
*允许所有)、允许的请求方法(以GET为主)、允许的头信息。 - 保存配置后重新测试图片加载。
需要注意:GCS的签名URL不会自动附带CORS头,必须通过存储桶的CORS配置来设置。
内容的提问来源于stack exchange,提问作者Nicolas Degen
相关产品推荐
相关产品推荐

