Javascript 将fetch PUT请求转换为axios请求

Javascript 将fetch PUT请求转换为axios请求,javascript,axios,fetch-api,Javascript,Axios,Fetch Api,我一直在使用前端的fetch发出PUT请求。我的代码如下所示: fetch(url, { headers: { 'content-type': 'png', }, method: 'PUT', body: file, }) 我正在尝试使用axios编写相同的代码,但似乎不起作用 await axios.put(url, { data: { body: file }, headers: { 'content-t

我一直在使用前端的
fetch
发出
PUT
请求。我的代码如下所示:

fetch(url, {
  headers: {
    'content-type': 'png',
  },
  method: 'PUT',
  body: file,
})
我正在尝试使用axios编写相同的代码,但似乎不起作用

await axios.put(url, { 
     data: { 
        body: file 
    },
    headers: {
       'content-type': 'png',
    },
})
看看签名:

axios.put(url[,数据[,配置]])

第二个参数被视为
数据
,因此您的
最终成为请求主体的一部分

此外,
数据:{body:file},
是冗余的
axios.put()
数据
参数已被视为主体

因此您可以执行以下操作:

await axios.put(url, file,
  {
    headers: {
      'content-type': 'png'
    }
  }
)
或:

或者,为了与
fetch
API更相似

await axios(url,
  {
    method: 'PUT',
    data: file,
    headers: {
      'content-type': 'png'
    }
  }
)
await axios(url,
  {
    method: 'PUT',
    data: file,
    headers: {
      'content-type': 'png'
    }
  }
)