Javascript 错误:未捕获(承诺中):语法错误:意外标记<;JSON格式
解析Json文件时出错,该文件在上有效 在我的网站上,我得到了:Error:Uncaught(在promise中):SyntaxError:Unexpected token<在JSON中的位置0Javascript 错误:未捕获(承诺中):语法错误:意外标记<;JSON格式,javascript,json,angular,parsing,typescript,Javascript,Json,Angular,Parsing,Typescript,解析Json文件时出错,该文件在上有效 在我的网站上,我得到了:Error:Uncaught(在promise中):SyntaxError:Unexpected token
有人知道如何解决这个问题吗?我的JSON文件是有效的,我的Light对象包含有效字段,因此我无法理解。
/lights.JSON
可能返回HTML而不是JSON,因此resp.JSON()失败。您可以在将resp.json()返回为Light[]之前添加console.log(resp.text())
代码>行,这样您就可以看到原始响应(或者只需在dev tools networking选项卡中打开即可)检查从服务器获得的响应。如果返回html内容而不是json,则通常会出现<。因此,服务器可能会返回您意想不到的结果。要解决“未捕获(承诺中)”问题,您应该在承诺链的末尾添加一个.catch(…)
处理程序。谢谢,是的,我需要将我的json文件放在资产文件夹中,否则它会给我html而不是json。可能是因为它返回了404错误页,您应该在收到文件请求响应后检查状态代码,以捕获类似的问题
@Injectable()
export class LightParserService{
ITEMS_URL = "./lights.json";
constructor(private http: Http) {
}
getItems(): Promise<Light[]> {
return this.http.get(this.ITEMS_URL).toPromise()
.then(resp => {
return resp.json() as Light[];
});
}
}
lights : Light[] = [];
getLights(): void{
this.lightService.getItems().then(light => this.lights = light);
}