本文介绍: 在 `POST` 请求中,我们可以直接将数据对象作为第二个参数传递给 `Axios`,因为 `POST` 请求通常包含请求体。但是在 `DELETE` 请求中,我们需要使用对象字面量套一个自定义的 `data` 作为第二个参数,并使用 `data` 字段指定数据

踩坑 Axios Delete 请求传参

问题描述

今天在写前后端交互时,我想将 data 数据通过 delete 进行传参 axios.delete("/info", data),但是发现后端一直提示参数错误,我看了看代码也没错啊。跟 postpatch 一样的写法为什么会出现参数错误然后花了大量时间检查代码,最终还是不行。

无奈我只能在网上寻找答案最后发现是因为 Delete 本身的问题,下面是问题解决办法

解决办法

我们将数据对象 data 作为第二个参数直接传递给 Axiospost 方法Axios 会将该对象自动转换为请求体,并发送服务器上。

const text = async () => {
  // 请求Post
  await axios.post("/info", data)
  // 请求Patch
  await axios.patch("/info", data)

  // 请求Delete
  await axios.delete("/info", data) // 错误写法
}

然而,对于 DELETE 请求,情况略有不同。根据 RESTful API 设计DELETE 请求通常不包含请求体,而是将数据放在请求 URL 中。但是,一些后端框架默认解析 DELETE 请求的请求体,因此如果需要在 DELETE 请求中使用请求体,我们需要通知后端框架解析请求体数据。

为了解决这个问题Axios 提供了一种特殊方式。我们需要使用一个对象字面量作为第二个参数,且该对象包含一个自定义data 字段来传递对象数据

axios.delete("/info", { data })

总结
POST 请求中,我们可以直接将数据对象作为第二个参数传递给 Axios,因为 POST 请求通常包含请求体。但是在 DELETE 请求中,我们需要使用对象字面量套一个自定义data 作为第二个参数,并使用 data 字段指定数据。

原文地址:https://blog.csdn.net/haodian666/article/details/134639532

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_20286.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注