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
,跟get
的params
一样了
评论