You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

API图片无法转换为Blob或Base64数据,求代码修复方案

问题解决方案

修正后的可运行代码

// 先获取页面上的img元素,替换成你实际使用的选择器
const image = document.querySelector('img'); 
// 或者用ID选择器:document.getElementById('target-img')

fetch("https://t0.gstatic.com/faviconV2?client=SOCIAL&type=FAVICON&fallback_opts=TYPE,SIZE,URL&url=https://stackoverflow.com/&size=64")
  .then(response => {
    // 校验请求是否成功
    if (!response.ok) {
      throw new Error(`请求失败,状态码:${response.status}`);
    }
    return response.blob();
  })
  .then(blobImage => {
    const objectURL = URL.createObjectURL(blobImage);
    image.src = objectURL;
    // 图片加载完成后释放URL,避免内存泄漏
    image.onload = () => URL.revokeObjectURL(objectURL);
  })
  .catch(err => console.error('处理图片出错:', err));

关键修复点

  • 绑定有效DOM元素:原代码里的image变量必须是页面上真实存在的<img>元素,通过querySelector或getElementById获取后才能赋值src。
  • 校验请求状态:添加response.ok判断,只有请求返回2xx状态码时才继续处理,避免请求失败时调用blob()抛出异常。
  • 错误捕获机制:用.catch()捕获整个流程中的网络错误、DOM操作错误,方便调试定位问题。
  • 内存优化:图片加载完成后调用URL.revokeObjectURL()释放临时URL,避免长期占用浏览器内存。

额外排查方向

  • 如果是本地file://协议运行网站,浏览器可能会拦截跨域请求,建议用本地服务器(如VSCode的Live Server插件)启动项目。
  • 确认网络环境能正常访问该谷歌API地址,部分地区可能需要调整网络设置。

内容的提问来源于stack exchange,提问作者Nurvy Gamedev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 04:20:22