从 Angular 向 Node js API 发出 HTTP 请求的正确方法是什么?
What is the correct way to make a HTTP request from Angular to Node js API?
我正在对 nodejs 进行 API 调用 rom angular,如下所示>
public TUpdation(data): Observable<any>{
const headers = new HttpHeaders();
headers.set('content-type', null);
headers.set('Accept', 'multipart/form-data');
headers.set('Access-Control-Allow-Origin',"*");
return this.http.post(API.UPDATION, data, { headers });
}
在 node.js 部分,我试图在下面的函数中接收。
exports.Updation = async (req,res,next) => {
console.log("req.body : ",req.body); //Not getting the contents (empty)
var classTM = req.body.checkbox2;
var _entityclass;
try{
if(entityclass){
_entityclass = "EE";
}
else if(entityclass){
_entityclass = "TM";
}
else{
_entityclass = "TMP";
}
try{
console.log("req.body --- !!! ",req.body); // Here Im able to get the contents
}
catch(e){
}
}
catch(e){
}
}
我的问题是一开始我无法获取正文内容。无论我想做什么,都无法将 re.body 内容置于顶部。在第二次尝试中,我能够获取。谁能帮帮我。我做错了什么?
或许您可以尝试使用以下代码:
public TUpdation(data): Observable < any > {
const headers = new HttpHeaders();
// set content-type: `application/json`
headers.set('content-type', 'application/json');
// you can comment: multipart/form-data, if it's still does not work
headers.set('Accept', 'multipart/form-data');
headers.set('Access-Control-Allow-Origin', "*");
// make sure your "data" is not an empty object
// you can console.log(data);
return this.http.post(API.UPDATION, data, {
headers
});
}
用上面的代码更改 Angular 应用中的代码后,现在,请确保 您已在 express 中添加 body-parser
应用
您可以使用以下代码设置您的 body-parser
:
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
您可以复制上面的代码并输入您的 app.js
或 server.js
。
希望对您有所帮助
我正在对 nodejs 进行 API 调用 rom angular,如下所示>
public TUpdation(data): Observable<any>{
const headers = new HttpHeaders();
headers.set('content-type', null);
headers.set('Accept', 'multipart/form-data');
headers.set('Access-Control-Allow-Origin',"*");
return this.http.post(API.UPDATION, data, { headers });
}
在 node.js 部分,我试图在下面的函数中接收。
exports.Updation = async (req,res,next) => {
console.log("req.body : ",req.body); //Not getting the contents (empty)
var classTM = req.body.checkbox2;
var _entityclass;
try{
if(entityclass){
_entityclass = "EE";
}
else if(entityclass){
_entityclass = "TM";
}
else{
_entityclass = "TMP";
}
try{
console.log("req.body --- !!! ",req.body); // Here Im able to get the contents
}
catch(e){
}
}
catch(e){
}
}
我的问题是一开始我无法获取正文内容。无论我想做什么,都无法将 re.body 内容置于顶部。在第二次尝试中,我能够获取。谁能帮帮我。我做错了什么?
或许您可以尝试使用以下代码:
public TUpdation(data): Observable < any > {
const headers = new HttpHeaders();
// set content-type: `application/json`
headers.set('content-type', 'application/json');
// you can comment: multipart/form-data, if it's still does not work
headers.set('Accept', 'multipart/form-data');
headers.set('Access-Control-Allow-Origin', "*");
// make sure your "data" is not an empty object
// you can console.log(data);
return this.http.post(API.UPDATION, data, {
headers
});
}
用上面的代码更改 Angular 应用中的代码后,现在,请确保 您已在 express 中添加 body-parser
应用
您可以使用以下代码设置您的 body-parser
:
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
您可以复制上面的代码并输入您的 app.js
或 server.js
。
希望对您有所帮助