我知道这个问题可以在论坛上找到,但没有答案适合我。我有一个 Angular 服务,它调用 NodeJS API,如下所示:
Angular 服务
public createUser(pUser: User): Observable<User> {
var url = "http://localhost:5000/users";
var json = JSON.stringify(pUser)
return this.http.post<User>(url, pUser)
}
NodeJS API
router.post('/', (req, res) => {
console.log(req.body)
User.create({ email: req.body.email, password: req.body.password })
res.sendStatus(200);
});
API 调用得很好,插入数据库工作正常,但我在浏览器中看到以下消息:
SyntaxError: Unexpected token O in JSON at position 0
返回时请求的状态为 200,但浏览器中仍然存在错误
不知道问题是出在前端还是后端。
经过一些研究后,我尝试在发送对象之前解析它。我也尝试字符串化。
没有成功
有人能解决这个问题吗?非常感谢
最佳答案
当您尝试解析无效的 JSON 时,会发生此错误。
由于 Angular 的默认响应类型是 JSON,并且代码 200 的默认响应是“OK”。您必须调整其中之一。
您可以将响应类型更改为文本
,如下所示:
this.http.post<User>(url, pUser, {responseType: 'text'});
或者返回一个 JSON 对象:
res.status(200).send({ status: 'OK'});
关于javascript - 当我查询 API 时,JSON 中位置 0 出现意外的标记 O,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58941004/