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请求。添加该选项以确保端点接收到正确类型的请求。之后,您需要将服务方法代码添加到问题中。否则,就不可能说出问题所在。