ajax post的数据格式问题

我以前没遇到也没想过这个问题,这是前段时间有个朋友问的问题,现在想起发现记忆有些模糊了,所以从聊天记录中找出来并记下。

问题



解决

当时猜测是用Qs转换过的,所以写了个测试文件

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <script src="https://cdn.staticfile.org/axios/0.26.0/axios.min.js"></script>
  <script src="https://cdn.staticfile.org/qs/6.10.3/qs.min.js"></script>
</head>
<body>
<button onclick="withCurlyBraces()">带花括号</button>
<button onclick="withoutCurlyBraces()">不带花括号</button>
<script>
const params = {method: "post", url: "test", data: {a: "hello", b: "word"}};

function withoutCurlyBraces() {
  const data = Qs.stringify(params.data);
  console.log(data);
  axios({...params, data});
}

function withCurlyBraces() {
  axios(params);
}
</script>
</body>
</html>

结果跟我的猜想一致。而且可以发现Qs.stringify(params.data)后数据变成了a=hello&b=word,跟getparams一样了

评论

0 / 800
全部评论()