我无法使用fetch或Postman发送邮件正文,但可以使用Axios发送邮件正文。
Axios返回:User name = Fred, password is Flintstone
但是Postman和fetch都返回User name = undefined, password is undefined
如何获取带有邮递员和邮递员的邮件正文?
const express = require("express");
const bodyParser = require("body-parser");
const app = express();
const axios = require("axios");
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.post("/login", (req, res) => {
var user_name = req.body.user;
var password = req.body.password;
console.log("User name = " + user_name + ", password is " + password);
res.end("yes");
});
app.listen(3000, () => {
console.log("Started on PORT 3000");
});
axios.post("http://localhost:3000/login", {
user: "Fred",
password: "Flintstone",
});
fetch("http://localhost:3000/login", {
method: "POST",
body: JSON.stringify({ user: "Fred", password: "Flintstone" }),
mode: "no-cors",
});
答案 0 :(得分:2)
在Postman中,您尝试将JSON数据作为文本发送。将邮递员中从Text
发送的数据类型更改为JSON
。
此外,建议您在bodyParser
文件中保留1个server
对于fetch()
,我建议您看一下这个问题,必须进行一些调整Fetch: POST json data
答案 1 :(得分:2)
this
并非默认发布JSON,这就是为什么您必须显式编码主体的原因。您还需要告诉要发送JSON的服务器。
未经CORS的许可,您无法执行此操作,因此您不得将模式设置为fetch
。
no-cors
Postman的问题可能是相同的(但在UI屏幕截图中不可见):您需要设置Content-Type标头。
答案 2 :(得分:-2)
尝试一下:
app.post("/login", (req, res) => {
var user_name = req.body.user;
var password = req.body.password;
console.log("User name = " + user_name + ", password is " + password);
res.json({ "user name": user_name, "password": password });
});