Vue Axios Consten-Type与文件上传

1.遇到问题:http请求415错误Unsupported Media Type
提交媒体类型不对,然后更改headers的Constent-Type,同时提交的数据类型要是Json字符串

const service = axios.create({
  baseURL: process.env.VUE_APP_BASE_API,
  timeout: 30 * 1000,
  transformRequest: [function(data) {
  	// 提交的数据类型要是Json字符串
      return JSON.stringify(data)
    }
  ]
})
service.interceptors.request.use(
  config => {
  // 请求之前对request设置,更改headers的Constent-Type
    config.headers['Content-Type'] = 'application/json'
    return config
  },
  error => {
  }
)

在这里插入图片描述
常用的两种数据格式转换方式
而qs.stringify()将对象 序列化成URL的形式,以&进行拼接。

JSON.stringify()是正常类型的JSON

2.上传文件接口同时需要传参数和文件时,比如

params: {
	name: 'xiaoming',
	file: (binary)
}

可以这么写:

  let fd = new FormData()
  fd.append('name', 'xiaoming')
  fd.append('file', data) // data就是文件数据,关于文件上传详细见另外的文章
  
然后记得请求接口的headers设置
      'Content-Type': 'multipart/form-data;'
然后请求的数据格式不需要转换,直接return就好了
  
  
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值