Angular 为什么错误对象没有状态代码和状态消息?

Angular 为什么错误对象没有状态代码和状态消息?,angular,swagger-2.0,swagger-codegen,Angular,Swagger 2.0,Swagger Codegen,以下是场景: 服务类从swagger编辑器生成,并导入到我的Angular项目中 有不同的端点,为了回答这个问题,我在下面发布一个主要端点 public getCompanies(pageNumber: string, pageSize: string, sortOrder: string, observe?: 'body', reportProgress?: boolean): Observable<Array<Company>>; public getCompanie

以下是场景:

服务类从swagger编辑器生成,并导入到我的Angular项目中

有不同的端点,为了回答这个问题,我在下面发布一个主要端点

public getCompanies(pageNumber: string, pageSize: string, sortOrder: string, observe?: 'body', reportProgress?: boolean): Observable<Array<Company>>;
public getCompanies(pageNumber: string, pageSize: string, sortOrder: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Array<Company>>>;
public getCompanies(pageNumber: string, pageSize: string, sortOrder: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Array<Company>>>;
public getCompanies(pageNumber: string, pageSize: string, sortOrder: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {
    if (pageNumber === null || pageNumber === undefined) {
        throw new Error('Required parameter pageNumber was null or undefined when calling getCompanies.');
    }
    if (pageSize === null || pageSize === undefined) {
        throw new Error('Required parameter pageSize was null or undefined when calling getCompanies.');
    }
    if (sortOrder === null || sortOrder === undefined) {
        throw new Error('Required parameter sortOrder was null or undefined when calling getCompanies.');
    }

    let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});
    if (pageNumber !== undefined) {
        queryParameters = queryParameters.set('pageNumber', <any>pageNumber);
    }
    if (pageSize !== undefined) {
        queryParameters = queryParameters.set('pageSize', <any>pageSize);
    }
    if (sortOrder !== undefined) {
        queryParameters = queryParameters.set('sortOrder', <any>sortOrder);
    }

    let headers = this.defaultHeaders;

    // authentication (oauth) required
    if (this.configuration.accessToken) {
        let accessToken = typeof this.configuration.accessToken === 'function'
            ? this.configuration.accessToken()
            : this.configuration.accessToken;
        headers = headers.set('Authorization', 'Bearer ' + accessToken);
    }

    // to determine the Accept header
    let httpHeaderAccepts: string[] = [
        'application/json'
    ];
    let httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);
    if (httpHeaderAcceptSelected != undefined) {
        headers = headers.set("Accept", httpHeaderAcceptSelected);
    }

    // to determine the Content-Type header
    let consumes: string[] = [
        '*/*'
    ];

    return this.httpClient.get<Array<Company>>(`${this.basePath}/companies`,
        {
            params: queryParameters,
            withCredentials: this.configuration.withCredentials,
            headers: headers,
            observe: observe,
            reportProgress: reportProgress
        }
    );
}
这里仅出于测试目的,我使用控制台查看状态消息。我测试了一个案例,其中服务器返回未经授权的
401
。error.status始终包含0


在浏览器网络窗口中,我看到错误代码为401,但在angular中,它始终具有状态代码0和状态文本“未知错误”。为什么会发生这种情况?

这可能是因为ErrorResponse对象没有“status”属性(至少在生成代码时使用了swagger code gen 2.3.1)。您是否尝试访问error.code或error.message

this._myservice.getCompanies( page, size, sortOrder ).subscribe(
  (response) => {
    console.log("Success");
  },
  (error) => {
    console.log("Error: " + error.status);
  }
);