[英]Axios post request not sending parameters
我有一个 scipt 标签,在其中我向通过 axios.Axios 的路由发出发布请求时没有发送参数。 这是 axios 的代码:
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script type="text/javascript">
const data={'firstName':"sai"}
axios({
url: "/",
method: "post",
data: data,
})
.then(response => {
console.log(response);
})
.catch(error => console.error(error));
</script>
这是事情的明确方面:
app.post("/",function(req,res){
console.log("post route");
console.log(req.body);
})
我控制台。在 req.body 的帮助下记录来自 post 请求的数据(我也有 body-parser 工作得很好。用其他正常形式测试过)。req 通过点击 post 路由。但是身体是空总是记录“{}”。 这个你能帮我吗。
选项 1:定义配置 object
let config = {
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
}
}
强制:使用数组作为参数,而不是 js object 用于 'application/x-www-form-urlencoded'
const params = new URLSearchParams();
params.append('PARAM1', 'VALUE1');
params.append('PARAM2', 'VALUE2');
来电发帖
axios.post( uri, params, config )
或者
axios({
url,
headers: { 'content-type': 'application/x-www-form-urlencoded' }
data: params
})
选项 2:创建 api 实例(可选)并设置默认内容类型
const api_local = axios.create({
baseURL: 'http://localhost:1000/myapi',
});
api_local.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
强制:使用数组作为参数,而不是 js object 用于 'application/x-www-form-urlencoded'
const params = new URLSearchParams();
params.append('PARAM1', 'VALUE1');
params.append('PARAM2', 'VALUE2');
来电发帖
api_local.post( uri, params )
我也有 body-parser 工作得很好。用其他正常的 forms 测试
正常 forms 提交编码为multipart/form-data
或application/x-www-form-urlencoded
的数据。
Axios 默认提交数据为application/json
。
您需要一个不同的正文解析器。 一种支持 JSON。
(或以不同的格式提交数据)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.