在从Angular前端向Node后端发送HTTP DELETE请求时,抛出以下错误:
但是DELETE请求仍然得到处理并且对象被删除。
这是我在Angular中的删除功能:
deleteProject(id: number) {
this.http.delete(`projects/${id}`).subscribe(
response => {
this.toastr.success('Project deleted.', 'Success');
},
err => {
console.log(err);
}
);
}
在我的后端API中:
function remove(req, res) {
let query = {
_id : req.params.id
};
Projeto.findById(query)
.then(async (projeto) => {
if(!projeto) {
return res.status(404).json({error: 'not_found', message: 'This project doesn\'t exist.'});
}
if(projeto.project_manager.toString() != req.user._id.toString()) {
return res.status(403).json({error: 'forbidden', message: 'You can\'t delete this project.'});
} else {
await Projeto.findByIdAndRemove(query);
}
res.status(200).send("Project deleted.");
})
.catch(utils.handleError(req, res));
}
该错误指的是什么,我该如何解决?
答案 0 :(得分:1)
我的 AspNet Core Web Api 后端出现了同样的错误。
当我们像这样在 Ok 方法中返回一个值时:
Ok('some message')
它给出了这个错误:
JSON.parse: unexpected character at line 1 column 1 of the JSON data
如果我们只使用 Ok()
而没有任何消息,它工作得很好:)
这是我的工作控制器操作方法:
[HttpPost("{receiverId}")]
public ActionResult LikeUser(int userId, int receiverId)
{
var result = _likeRepository.LikeUser(userId, receiverId);
if(result.IsSuccessful)
return Ok();
else
return BadRequest(result.Message);
}
答案 1 :(得分:0)
您显示的响应将其转换为JSON,然后尝试。由于您的响应不是JSON格式,因此会出现该错误。