【问题标题】:Angular 2 - get json file names from http.getAngular 2 - 从 http.get 获取 json 文件名
【发布时间】:2017-04-27 13:13:07
【问题描述】:

在服务器目录中,我有一个 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() 时,我得到了这个错误: 位置 0 处的 JSON 中的意外标记 。 这是我的组件

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);
  }

}

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

【问题讨论】:

  • 在我看来,您发送的请求返回的是 HTML 而不是 JSON,因为第一个字符是“
  • 你在某处使用 JSON.parse 吗?
  • @AhmedMusallam 网络选项卡中的响应类型是 text/html 而我发送的请求是 application/json .. 这是问题吗?如何返回 json 类型而不是 html?
  • @Powkachu 我尝试使用它但结果没有改变
  • @ndrn 我不确定 res.toJson() 是否会解析 text/html 响应。更大的问题是:响应正文是 json 字符串吗?您可以在这里发布响应标题和正文 (content) 吗?

标签: angular http


【解决方案1】:

尝试做这个结构:

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

【讨论】:

  • 我尝试了这个解决方案,但没有改变..也许它取决于响应类型是 html 而不是 json..
  • @ndrn 检查我的更新,希望它能解决问题。我认为响应类型是 JSON。
  • 使用这条指令我有页面的 html 代码,但我要做的是从服务器目录中读取以获取存储在此目录中的所有 json 文件的名称.. 那里允许从此服务器目录读取的 javascript 函数?
  • 您可以读取服务器允许您读取的内容。如果您想要一个 json 文件名列表,请在服务器中创建一个包含所有文件名的 json...我认为您应该联系后端开发人员,以便他可以为您提供所需的数据...
猜你喜欢
  • 2017-11-06
  • 2018-05-30
  • 1970-01-01
  • 1970-01-01
  • 2016-05-25
  • 2017-05-10
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多