Angular 角度:执行put操作时出现问题

Angular 角度:执行put操作时出现问题,angular,Angular,以下是我在英国的服务: updateProducts(productForm, id) { const temp = { 'description': productForm.description, 'quality': productForm.quality }; return this.httpObj.put(`${this.uri}/products/${id}`, JSON.stringif

以下是我在英国的服务:

updateProducts(productForm, id) {
        const temp = {
            'description': productForm.description,
            'quality': productForm.quality
        };
        return this.httpObj.put(`${this.uri}/products/${id}`, JSON.stringify(temp), {
            headers: new HttpHeaders({
                'Content-Type': 'application/json'
            })
    });
    }
在命令终端中,我看到请求为PUT/products/NaN 200 118.602 ms-4。为什么它作为NaN发送而不检测ID

后端:

router.put('/:id', function(req, res, next) {
  Products.findByIdAndUpdate(req.params.id, req.body, function (err, post) {
    if (err) return next(err);
    res.json(post);
  });
});

这是一个完美的例子,TypeScript的键入可能会避免您传递一个不是
id
参数的数值
NaN
。键入您的输入:
id:number
id:string
,只要合适,并查看编译器是否会捕获未传递正确类型值的地方。如果端点需要JSON,则也不需要对POST数据进行字符串化。不需要为
应用程序/JSON
设置
内容类型
头。Angular默认情况下会这样做。@Brandon我能够自动填充表单数据。现在的问题是数据没有得到更新。当我签入邮递员时,得到的响应为空。有什么建议吗?除非您特别添加带有XMLHttpRequest的
X-request-With
头,否则Postman不会发出XHR请求。添加该选项以确保端点接收到正确类型的请求。之后,您需要将服务方法代码添加到问题中。否则,就不可能说出问题所在。