Axios: 支持删除正文

创建于 2017-05-13  ·  7评论  ·  资料来源: axios/axios

这可能是 axios 团队的一个设计选择,并且有充分的理由,但我这样写我所有的 POST/GET/PUT:

const res = await axios.post(url, { 
  data: {
    ...
  }
})

而且我的服务器有时需要 DELETE 请求正文中的数据(这在技术上可能不符合规范,但仍然很常见)在这种情况下,我必须以这种形式编写我的 DELETE:

      const res = await axios({
        method: 'DELETE',
        url: 'url',
        data: {
          ...
        }
      })

效果很好,但我不得不使用第二种语法,因为axios.delete不支持请求正文。

所以我想请求axios.delete将支持请求正文。

谢谢

最有用的评论

axiox.delete确实支持请求正文。 它接受两个参数: url和可选的config 。 您可以使用config.data来设置响应正文,如下所示:

axios.delete(url, { data: { foo: "bar" } });

postputpatch接受 3 个参数: urldataconfig ,所以你可以可以使用第二个参数来设置响应正文,如下所示:

axios.put(url, { foo: "bar" });

希望能帮助到你!

所有7条评论

我们经常在服务器上将data与 GET 请求一起使用,并将它们转换为查询参数。 某些方法缺乏数据支持是 axios 的一大缺点,我希望有更多同构的代码。

谢谢,在这里我找到了这个答案

axiox.delete确实支持请求正文。 它接受两个参数: url和可选的config 。 您可以使用config.data来设置响应正文,如下所示:

axios.delete(url, { data: { foo: "bar" } });

postputpatch接受 3 个参数: urldataconfig ,所以你可以可以使用第二个参数来设置响应正文,如下所示:

axios.put(url, { foo: "bar" });

希望能帮助到你!

我认为README很难理解:

  // `data` is the data to be sent as the request body
  // Only applicable for request methods 'PUT', 'POST', and 'PATCH'
  // When no `transformRequest` is set, must be of one of the following types:
  // - string, plain object, ArrayBuffer, ArrayBufferView, URLSearchParams
  // - Browser only: FormData, File, Blob
  // - Node only: Stream, Buffer
  data: {
    firstName: 'Fred'
  },

这部分:特别是// Only applicable for request methods 'PUT', 'POST', and 'PATCH'

请将此评论添加到文档中

它在文档https://github.com/axios/axios#request -method-aliases

这两者有什么区别?

this.$axios.$delete(queryData.url,
        {
          params: { id: String(queryData.id) }
        })
this.$axios.$delete(queryData.url,
        {
          body: { id: String(queryData.id) }
        })

[params] 在我身边工作

此页面是否有帮助?
0 / 5 - 0 等级