javascript axios获取带有body和header的请求

5f0d552i  于 2023-04-28  发布在  Java
关注(0)|答案(2)|浏览(259)

我怎么能像这样,发送身体参数和头部与授权令牌到这个

const searchByDate = async ({ date1, date2 }) => {
  const tokenApp = window.localStorage.getItem('token');
  const { data: res } = await axios.get(`${baseUrl}/search`, {
    data: { date1: date1, date2: date2 },
    headers: { Authorization: `${tokenApp}` },
  });
  return res;
};

到目前为止,它正在向我抛出一个错误所需的请求体丢失

okxuctiv

okxuctiv1#

一般来说,body中没有GET请求的意义,所以axios不支持它。
如果您阅读axios配置文档,您会发现
//data是作为请求体发送的数据
//仅适用于请求方法'PUT'、'POST'、'DELETE'和'PATCH'
您可以在HTTP GET with request body上阅读更多原因。
如果要在GET请求中发送数据,请使用params属性
//params是与请求一起发送的URL参数
//必须是普通对象或URLSearchParams对象

vlf7wbxs

vlf7wbxs2#

在axios中,get方法中没有与body相关的字段,您可以通过在URL中获取查询中的数据来传输数据,如下所示:

const searchByDate = async ({ date1, date2 }) => {
  const data = { date1: date1, date2: date2 }
  const tokenApp = window.localStorage.getItem('token');
  const { data: res } = await axios.get(`${baseUrl}/search?data=${JSON.stringify(data)}`, {
    headers: { Authorization: `${tokenApp}` },
  });
  return res;
};

在后端将数据从字符串转换为原始数据类型只需将数据 Package 在

JSON.parse(data)

相关问题