Angular 2 - 从 http.get 获取 json 文件名

标签 angular http

在服务器目录中,我有一个 json 文件列表。我需要将每个 json filename 导入我的 angular 2 组件中的字符串数组或其他结构。

我尝试使用此服务向 Web 服务器创建一个 http.get。

export class AnUtenteService {
   getFiles() : Observable<string[]> {
      return this.http.get(directory)
         .map(this.extractData)
         .catch(this.handleError);
   }

   private extractData(res: Response) {
      let body = res.json();
      return body.data || { };
   }
   private handleError (error: any) {
   let errMsg = (error.message) ? error.message :
   error.status ? `${error.status} - ${error.statusText}` : 'Server error';
   console.error(errMsg); // log to console instead
   return Observable.throw(errMsg);
  } 
}

但是当我在我的组件中调用 anutenteservice.getFiles() 时,我得到了这个错误: JSON 中位置 0 的意外标记 <。 这是我的组件

export class OrderslistComponent{
  newsList; 
  errorMessage;
  constructor(private anutenteservice: AnUtenteService,  private http: Http)
  {}
  ngOnInit() {
     this.anutenteservice.getFiles()
     .subscribe(data => this.newsList = data,
                error => this.errorMessage = <any>error);
  }

}

我不明白哪里错了。我该怎么办?

最佳答案

尝试做这个结构:

export class OrderslistComponent {
    newsList;
    errorMessage;

    constructor(private anutenteservice: AnUtenteService) {
        this.anutenteservice.getFiles.subscribe((data) => {
                this.newsList = data;
            }
        );
    }

    ngOnInit() {
    }    
}

并将Http 添加到您的服务类。将此添加到您的服务类:

constructor(private http: Http) {
}

更新 1:

尝试改变类型,在这里:

  private extractData(res: Response) {
      let body = res.text();
      return body.data || { };
   }

如果您的响应类型不是 JSON

关于Angular 2 - 从 http.get 获取 json 文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43658943/

相关文章:

angular - 使用 mat-paginator angular 5 Material 显示页码

performance - Angular 性能 : component exposes public object with 500+ (sub-) members

Angular 6 测试用例失败并显示不相关的错误消息

http - 如何在 Julia 中发出启用 SSL 的 HTTP 请求?

rest - 是否需要 DELETE/PUT http 动词?

Delphi indy 流式 Http 服务器

http - 在 Mule 3.1.2 中代理 HTTP POST 表单数据

iphone - iPhone 中的 HTTP 身份验证

javascript - Angular 2 不更新由第三方库修改的输入值

angular - 在 foreach 循环中订阅多个 observable<boolean>?