问题描述: 在Angular应用中,发送POST请求向Node.js服务器发送时,发现请求体为空。
解决方法:
HttpParams
类或JSON.stringify()
将数据转换为字符串,并将其作为请求体发送。示例代码:
import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';
// 创建请求体数据
let data = {
name: 'John',
age: 25
};
// 使用HttpParams类将数据转换为字符串
let params = new HttpParams().set('data', JSON.stringify(data));
// 设置请求头
let headers = new HttpHeaders().set('Content-Type', 'application/json');
// 发送POST请求
this.http.post(url, params, { headers: headers }).subscribe(response => {
console.log(response);
}, error => {
console.error(error);
});
body-parser
可以帮助解析请求体。示例代码:
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
// 使用body-parser中间件解析请求体
app.use(bodyParser.json());
// POST请求处理
app.post('/', (req, res) => {
console.log(req.body); // 输出请求体数据
res.send('POST request received');
});
app.listen(3000, () => {
console.log('Server started on port 3000');
});
注意:需要使用body-parser
中间件来解析请求体数据,以便在req.body
中获取数据。
通过以上两个步骤,你应该能够解决Angular发送的POST请求向Node.js服务器发送空请求体的问题。