我正在向我的服务器发出 axios post 请求。客户端在本地主机上运行。为了实现这一点,我使用了 ngrok。我通过向 axios 请求添加特定标头解决了 CORS 错误。但是,我没有在 req.body 上看到任何数据。我正在查看所有类似的帖子,只是不明白为什么我不发送任何数据。任何帮助将非常感激!!!
axios 请求:
...
const posting = async () => {
await axios.post('http://a410-xxx-c455-d1e8-1c8a-fa19.ngrok-free.app/someRequest',
{ title: 'world' }, {
headers: {
"Content-type": "application/x-www-form-urlencoded"
}}
);
...
}
index.js
const app = require ('./app');
app.use(bodyParser.json());
app.js
routes(app);
routes.js
app.use(router.post('/someRequest', (req, res, next) => {
res.header("Access-Control-Allow-Origin", "*");
console.log(req.body)
}))
您声称要发送表单 URL 编码数据。
"Content-type": "application/x-www-form-urlencoded"
但是,您将一个对象传递给 Axios,因此它会对数据进行 JSON 编码。
{ title: 'world' }
并且您拥有的唯一的正文解析中间件仅支持 JSON 编码数据
app.use(bodyParser.json());
您需要:
… 全部匹配。
由于您声称要发送 URL 编码数据,因此 JSON 解析器不会触发。
如果您没有覆盖它,Axios 会自动设置正确的 Content-Type 标头。
省略
headers
属性。