具有子数组返回错误的Angular2 json对象

时间:2017-09-14 04:30:01

标签: angular asp.net-apicontroller

我正在运行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

1 个答案:

答案 0 :(得分:1)

好,

显然问题出现在序列化程序中。错误地将孩子序列化但是无论如何都设法返回了有效的json。

我在更多连接元素上抛出了[JsonIgnore]标签,以正确防止循环引用,并且错误消失了。