Cod*_*g59 3 javascript api node.js 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)
}
Run Code Online (Sandbox Code Playgroud)
节点JS API
router.post('/', (req, res) => {
console.log(req.body)
User.create({ email: req.body.email, password: req.body.password })
res.sendStatus(200);
});
Run Code Online (Sandbox Code Playgroud)
该 API 调用得很好,插入数据库有效,但我在浏览器中有此消息:
语法错误:JSON 中位置 0 的意外标记 O
返回时请求的状态为 200,但错误仍然存在于浏览器中
不知道是前端的问题还是后端的问题。
在做了一些研究之后,我尝试在发送之前解析我的对象。我也尝试进行字符串化。
没有成功
这是有人会有解决方案吗?非常感谢您
当您尝试解析无效的JSON时会发生此错误。
由于 angular 的默认响应类型是JSON,而代码 200 的默认响应是“OK”。你必须适应其中之一。
您可以将响应类型更改为text如下所示:
this.http.post<User>(url, pUser, {responseType: 'text'});
Run Code Online (Sandbox Code Playgroud)
或者你返回一个 JSON 对象:
res.status(200).send({ status: 'OK'});
Run Code Online (Sandbox Code Playgroud)