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

如何使用Axios获取非JSON类型的数据?

Axios获取非JSON类型数据实现方案

Axios默认会自动解析响应为JSON格式,要获取图片、文本、二进制文件等非JSON类型数据,只需指定responseType请求配置即可,具体实现如下:

示例:获取PNG图片资源

你需要获取的图片属于二进制资源,指定responseType: 'blob'即可,完整代码如下:

import axios from 'axios'

axios.get('https://i.sstatic.net/imahD.png', {
  // 核心配置:指定响应格式为Blob二进制对象
  responseType: 'blob'
}).then(res => {
  // 场景1:页面直接展示图片
  const imgSrc = URL.createObjectURL(res.data)
  const imgEle = document.createElement('img')
  imgEle.src = imgSrc
  document.body.appendChild(imgEle)

  // 场景2:下载图片到本地
  const downloadLink = document.createElement('a')
  downloadLink.href = imgSrc
  downloadLink.download = 'target-image.png'
  downloadLink.click()

  // 释放临时URL,避免内存占用
  URL.revokeObjectURL(imgSrc)
}).catch(err => {
  console.log('请求出错:', err)
})

其他非JSON类型的配置说明

如果要获取其他类型的非JSON数据,修改responseType对应值即可:

  • 获取普通文本内容:responseType: 'text',直接通过res.data获取文本字符串
  • 获取ArrayBuffer格式二进制数据:responseType: 'arraybuffer',适用于需要处理二进制流的场景
  • 获取各类文档流:同样使用responseType: 'blob',和图片处理逻辑一致

注意事项

  • responseType是Axios的专属请求配置项,不需要放在headers请求头中,放错位置不会生效
  • 如果请求触发跨域错误,需要目标站点配置CORS跨域允许规则,或者通过代理转发请求解决
  • 所有二进制类型的资源都可以用blob格式接收,通用性更强

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 18:06:03