背景
Angular 2应用程序正在我的localhost上使用PHP API。我知道我的URL端点设置正确,因为我用Postman检查了它们。当我发出get请求时,响应是我自己页面的html。我得到了成功代码200但响应错误因为
错误
EXCEPTION:意外的令牌<在位置0的JSON中
所以,当我在console.log(res)中,我得到了这个,
//来自角度2前端的我自己的HTML。
"<!DOCTYPE html>↵<html>↵<head> etc...
我期待在回复中这样做,
{
"error": true,
"api_key": false,
"message": "User is registered in our database now use update api to fill other details"
}
问题
什么会导致响应从我正在发出初始请求的页面中保留我自己的html?
代码示例
我的获取请求
public checkRegister(model: LogReg) {
// Parameters obj-
let params: URLSearchParams = new URLSearchParams();
params.set('email', model.email);
params.set('email_verified', model.email_verified);
//Http request-
return this.http.get(STATICS.API_BASE + STATICS.API_LOGIN,
{ search: params }).map((res:Response) => res.json());
}
这就是我处理响应的方式,
// Login Or Register User On Our Server
this.logreg = new LogReg(profile.email_verified, profile.email);
this.checkRegister(this.logreg).subscribe((res)=>{
console.log(res);
if (profile.email_verified === false) {
console.log(res);
console.log("Check your email to verify your account!");
this.logout(this.user);
}
else if (res.profile_exist === false) {
console.log(res);
this.router.navigateByUrl('/profile');
} else if (res.profile_exist === true) {
console.log(res);
this.router.navigateByUrl('/overview');
}
});
答案 0 :(得分:0)
res.json是导致您看到的错误的原因。
res.json正在尝试解析响应的有效负载,由您的控制台判断日志根本不是json。您可以将res.json包装在try catch中,以防止错误导致应用程序无法继续前进。
您可能希望在开发工具中打开网络选项卡时触发get请求,并验证您的请求是否正在发送您所期望的内容。此外,我怀疑如果你正在进行API调用来检查有效负载,你会想要发送一个帖子请求。