将 fetch PUT 请求转换为 axios 请求

Posted

技术标签:

【中文标题】将 fetch PUT 请求转换为 axios 请求【英文标题】:Converting fetch PUT request into axios request 【发布时间】:2020-01-12 08:49:32 【问题描述】:

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

fetch(url, 
  headers: 
    'content-type': 'png',
  ,
  method: 'PUT',
  body: file,
)

我正在尝试使用axios 编写相同的内容,但似乎不起作用

await axios.put(url,  
     data:  
        body: file 
    ,
    headers: 
       'content-type': 'png',
    ,
)

【问题讨论】:

【参考方案1】:

看看axios.put签名:

axios.put(url[, data[, config]])

第二个参数被视为data,因此您的headers 最终成为请求正文的一部分。

此外,data: body: file , 是多余的。 axios.put()data 参数已经被视为正文。

所以你可以这样做:

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

或:

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

或者,为了与fetch API 更加相似,

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

【讨论】:

以上是关于将 fetch PUT 请求转换为 axios 请求的主要内容,如果未能解决你的问题,请参考以下文章

浏览器取消 PUT 请求

使用 Promise.all() 从 Axios 转换为 Fetch

React Native使用axios进行网络请求

Vue.js / Vuex + axios 发送多个 PUT 请求

axios 请求多选无法将更新形式中的值更改为 PUT 方法;反应.js

将 Paypal cURL 命令转换为 Axios 请求