繁体   English   中英

Angular http 放置请求不发送标头

[英]Angular http put request not sending headers

i am trying to make a http put request from angular to a node js web API, the request is done correctly the problem is am not getting the values sent in the header in the node js, i made sure that the problem is in the http将请求标头放在 angular 中,因为我使用 postman 使用相同的 header 尝试了相同的请求,并且它运行正确。 这是 Angular 代码:

UpdateRdvById(token){
  let  httpHeader = {
    headers: new HttpHeaders({
       "token": "test2" ,
       "etat":"test"
    })
  } ;
    return this.http.put(this.base_path+"/user/UpdateRdvByID",httpHeader).pipe()
}

Angular 发送请求后的日志:

n: 0
nModified: 0
opTime: {ts: "6814399187757564185", t: 10}
electionId: "7fffffff000000000000000a"
ok: 1
$clusterTime: {clusterTime: "6814399187757564185", signature: {…}}
operationTime: "6814399187757564185"
__proto__: Object

这是节点js代码:

router.put("/UpdateRdvByID", async (req, res) => {
  try {
    var host = req.headers['token'];
   var etat = req.headers['etat'];
    var query = { _id : host };
console.log('id'+req.headers['token']);
console.log('etat'+req.headers['etat']);
    const rdv = await Rendezvous.updateOne(query,{etat:etat});
    res.json(rdv);
  } catch (err) {
    console.log(err) ;
    res.send({ message: "Error in Fetching rendez vous"+err});
  }
});

这是它应该从标题中打印值但它变得“未定义”的问题。 节点js日志:

idundefined
etatundefined

put 方法的前两个 arguments 是 (URL, body),第三个可选的是包含标题的选项,因此您需要将其更改为: put(this.base_path+"/user/UpdateRdvByID", null, { httpHeader } )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM