我正在运行Angular2 v4.4.0beta。我试图从我的api返回一个物体和它的孩子。调用端点,这里是json:
import { Component } from '@angular/core';
import { Character } from './Character';
export class Company {
companyId: number;
name: string;
description: number;
characters: Character[];
}
这是Company.ts
import { Component } from '@angular/core';
export class Character {
characterId: number;
name: string;
description: string;
status: number;
userId: string;
companyId: number;
}
和Character.ts
getCompany(id: number) {
this.companyService.getCompany(id)
.subscribe(
(data: Company) => this.company = data,
error => this.errorMessage = <any>error);
}
这是我在组件中的Get函数
getCompany(id: number): Observable<Company> {
return this.http.get(this.url + "/Get/" + id,
{ headers: this.authService.authJsonHeaders() })
.map((resp: Response) => resp.json() as Company)
.catch(this.handleError);
}
最后这是服务功能
authJsonHeaders() {
let header = new Headers();
header.append('Content-Type', 'application/json');
header.append('Accept', 'application/json');
header.append('Authorization', 'Bearer ' +
sessionStorage.getItem('bearer_token'));
return header;
}
如果我分别获取项目,两个模型都有效,但如果我在公司内部返回字符,则会出错。
Chrome调试程序显示此错误
无法加载资源:net :: ERR_CONNECTION_RESET
组件记录此错误
0 - {&#34; isTrusted&#34;:true}
我错过了什么?
编辑: authHeader正在将JWT插入到调用中
repo1
答案 0 :(得分:1)
好,
显然问题出现在序列化程序中。错误地将孩子序列化但是无论如何都设法返回了有效的json。
我在更多连接元素上抛出了[JsonIgnore]标签,以正确防止循环引用,并且错误消失了。