Javascript Subscribe返回未定义的变量

Javascript Subscribe返回未定义的变量,javascript,angular,local-storage,subscribe,Javascript,Angular,Local Storage,Subscribe,因此,一般来说,购物车详细信息存储在本地存储中,被解析回并分配到一个数组中,然后应该订阅并发布到MongoDB,但返回“未定义”: 结帐 确认人(){ 让orderDetails:any={}; orderDetails.firstName=this.checkOutForm.controls['firstName'].value; orderDetails.lastName=此.checkOutForm.controls['lastName'].value; orderDetails.pho

因此,一般来说,购物车详细信息存储在本地存储中,被解析回并分配到一个数组中,然后应该订阅并发布到MongoDB,但返回“未定义”:

结帐

确认人(){
让orderDetails:any={};
orderDetails.firstName=this.checkOutForm.controls['firstName'].value;
orderDetails.lastName=此.checkOutForm.controls['lastName'].value;
orderDetails.phone=this.checkOutForm.controls['phone'].value;
orderDetails.address=this.checkOutForm.controls['address'].value;
orderDetails.country=this.checkOutForm.controls['country'].value;
orderDetails.city=this.checkOutForm.controls['city'].value;
this.orderItem=[];
for(让我输入这个.productAddedToCart){
this.orderItem.push({
产品名称:this.productAddedToCart[i]。产品名称,
id:this.productAddedToCart[i].id,
产品价格:this.productAddedToCart[i]。产品价格,
产品数量:此.productAddedToCart[i].产品价格,
类型:this.productAddedToCart[i]。类型,
product\u Img:this.productAddedToCart[i]。product\u Img,
产品描述:this.productAddedToCart[i]。产品描述,
_id:this.productAddedToCart[i]。\u id
});
}
orderDetails.product=this.orderItem
调试器
log(“orderDetails:”,orderDetails.product)
this.connectionService.sendReceive(this.checkOutForm.value).subscribe((res)=>{
调试器
log(“res是:”,res);
});
this.orderService.CreateOrder(orderDetails).subscribe((数据:orderDetails)=>{
调试器
log(“数据为:”,data)//不打印任何内容
调试器
this.globalResponse=数据
console.log(“数据为:”,this.globalResponse)//不打印任何内容
调试器
});
警报('您的订单已收到');
this.checkOutForm.reset();
this.disabledSubmitButton=true;
this.router.navigate(['/']);
localStorage.removietem(“产品”);
localStorage.removietem('cartItemCount');

};
我认为执行
CreateOrder()
时不接收任何数据的原因是因为它得到了一个有趣的HTTP错误。从下面我得到了这个内容,它说

Error[ERR_HTTP_HEADERS_SENT]是一个有趣的错误,当服务器尝试向客户端发送多个响应时会触发该错误。这意味着,对于给定的客户端请求,服务器以前向客户端发送了一个响应(请求资源的成功响应或错误请求的错误响应),现在却意外地尝试发送另一个响应

因此,后端会尝试发送两次响应。这就是问题所在。如果可以在浏览器控制台中打开“网络”选项卡,则可以检查该选项卡是否正确。

希望这能有所帮助。

我认为执行
CreateOrder()
时不接收任何数据的原因是因为它得到了一个有趣的HTTP错误。从下面我得到了这个内容,它说

Error[ERR_HTTP_HEADERS_SENT]是一个有趣的错误,当服务器尝试向客户端发送多个响应时会触发该错误。这意味着,对于给定的客户端请求,服务器以前向客户端发送了一个响应(请求资源的成功响应或错误请求的错误响应),现在却意外地尝试发送另一个响应

因此,后端会尝试发送两次响应。这就是问题所在。如果可以在浏览器控制台中打开“网络”选项卡,则可以检查该选项卡是否正确。

希望这能有所帮助。

Hi,标题的响应是:{message:“product not found”}message:“product not found”,这是我后端的错误,但整个产品信息显示在“Request Payload”上,也显示在我为测试而创建的标题中..product token:[{“\u id”:“5E5E5A6307D07A33280CE8C49C”,“product\u Name”:“GEL CONTENT 5”,“product_Description”:“Shoes 2”,“product_Price”:85,“product_Img”:./assets/Shoes/asics-mens-gel-Contage-5-running-Shoes.JPG”,“id”:13,“product_Quantity”:1,“type”:“Shoes”}]Referer:您好,标题的响应是:{message:“product not found”}message:“product not found,这是我后端的错误,但整个产品信息显示在“请求有效负载”上,也显示在我为测试创建的标题中..产品令牌:[{“\u id”:“5e5a6307d07a33280ce8c49c”,“产品名称”:“GEL CONTATE 5”,“产品描述”:“Shoes 2”,“产品价格”:85,“产品Img”:“./assets/shoes/asics-mens-gel-content-5-running-shoes.JPG”,“id”:13,“产品数量”:1,“类型”:“shoes”}]参考: