【问题标题】:Http GET request empty resultHttp GET 请求空结果
【发布时间】:2019-05-16 09:49:46
【问题描述】:

现在我在前端使用 Angular 6 的 ASP.NET,但不知道发生了什么。 简而言之:尽管后端发送了正确的值,但我得到了一个空的 json:

checked with Postman

型号:

import { Car } from '../models/car';
import { Ad } from '../models/ad';

export class Owner {
    Id: number;
    Firstname: string;
    Lastname: string;
    Phone: number;
    Email: string;
    Cars: Car[];
    Ads: Ad[];
  }

服务:

      /** GET owners list */
  getOwners (): Observable<Owner[]> {
    return this.http.get<Owner[]>(this.ownersUrl)
    .pipe(
      catchError(this.handleError('getOwners', []))
    );
  }

所有者组件:

  getOwners(): void{
this.ownerService.getOwners()
    .subscribe( owners => this.owners = owners);  
}

所有者 HTML:

<nb-card class="nav-card">
    <nb-card-body>
        <nb-list>
            <nb-list-item *ngFor="let owner of owners" >
                {{owner.Id}}
            </nb-list-item>
        </nb-list>
    </nb-card-body>
</nb-card>

我在做什么?服务不断给我空的 json 正文不好:/

【问题讨论】:

  • 您没有在获取请求中设置标题,而是在邮递员中设置。删除 catchError 管道,看看你得到了什么错误。
  • 您的Owner 类有不同的变量,响应有不同的变量。所以,这就是它无法映射的原因。例如,所有者类具有Id,但响应具有id。

标签: asp.net json angular xmlhttprequest nebular


【解决方案1】:

正如我所见,您如何检查服务是否返回空的 json 正文?请检查以下内容:

  1. 您的 Owner 类具有大写的字段,但是对于 Postman 屏幕截图,您的服务器发送所有小写字段。
  2. 在 Postman 中,您发送了一些标头,因此,请检查是否可以在没有这些标头的情况下请求数据,或者在您的服务中设置这些标头:

     getOwners(): Observable<Owner[]> {
    
        const httpOptions = {
          headers: new HttpHeaders({
            'Header Key':  'Header Value',
          })
        };
    
        return this.http.get<Owner[]>(this.ownersUrl)
          .pipe(
            catchError(this.handleError('getOwners', []))
          );
    }
    

【讨论】:

    猜你喜欢
    • 2012-10-21
    • 2018-12-15
    • 1970-01-01
    • 2016-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多