我想发送一个包含表单数据的 post 请求,我想从 nodejs 到另一个外部 api,我没有发送 formData 的前端,所以我只有一个 javascript 对象有键和值,那么我该怎么做?,当我尝试发送一个普通对象时,我没有得到正确的 api 响应,但是当我用 POSTMAN 客户端发送它时,我得到了正确的响应。
答案 0 :(得分:2)
如果您在 Postman 中得到了正确的结果,那么在相同的工具中使用 代码生成器 来获得所需的代码会很有趣:)。按钮“>”位于屏幕右侧。
这是从工具生成的代码:
var axios = require('axios');
var FormData = require('form-data');
var data = new FormData();
data.append('data', 'asldkfjalsdkjf');
var config = {
method: 'post',
url: 'https://some-domain.com/formdata',
headers: {
...data.getHeaders()
},
data : data
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
很酷,不是吗? 还有一件事,你有很多选择,从 NodeJS 到 C#、PHP.. :)
答案 1 :(得分:0)
所以你想用 nodejs 做一个 post 请求?为此,您可以使用 axios
库并按以下方式发送数据。
const axios = require('axios');
let formData = new FormData();
formData.append('x': 'some test data');
axios({
method: 'post',
url: 'https://stackoverflow.com/posts/67709177',
data: formData,
headers: { 'Content-Type': 'multipart/form-data' },
})
.then(res => {
console.log(`statusCode: ${res.statusCode}`)
console.log(res)
})
.catch(error => {
console.error(error)
})
您可以使用此命令安装 axios。
npm i axios