未捕获(在承诺中):响应状态:URL为0:null

时间:2017-11-26 21:36:18

标签: javascript json ionic-framework

我正在尝试使用离子框架并从我创建的API中解析json,然后使用它在我的离子应用程序中填充html。当我进入我的全病人页面时,我收到以下错误:

    <dependency>
        <groupId>mylocal.weka</groupId>
        <artifactId>weka</artifactId>
        <version>1.0</version>
    </dependency>

我的所有患者。:

Error: Uncaught (in promise): Response with status: 0  for URL: null
    at c (http://130.215.45.72:8102/build/polyfills.js:3:19752)
    at c (http://130.215.45.72:8102/build/polyfills.js:3:19461)
    at http://130.215.45.72:8102/build/polyfills.js:3:20233

休息-services.ts:

import { Component } from '@angular/core';

import { NavController } from 'ionic-angular';
import { RestService } from '../../providers/rest-service/rest-service';

@Component({
  selector: 'page-all-patients',
  templateUrl: 'all-patients.html',
  providers: [RestService]
})
export class AllPatientsPage {
  public data: any;

  constructor(public navCtrl: NavController, public restService: RestService){
    this.loadPeople();
  }

  loadPeople(){
    this.restService.load()
    .then(data => {
      this.data = data;
    });
  }
}

当我转到错误所在的页面时,它完全崩溃,但控制台中没有打印出任何内容。我不确定这是在API中解析数据还是其他错误。我已手动转到api页面,数据按预期显示。

1 个答案:

答案 0 :(得分:2)

我猜黑曜石时代已经给了你可能的核心问题,但不管怎样,你应该处理承诺拒绝。 因此,在这种情况下,您应该相应地更改代码:

我的所有患者。:

...
loadPeople(){
  this.restService.load()
  .then(data => {
    this.data = data;
  })
  .catch(e => console.error); // change this line according to your debugging/logging needs
}
...

休息-services.ts:

...
import 'rxjs/add/operator/toPromise';
...
return this.http.get('url')
  .map(res => res.json())
  .subscribe(data => {
    this.data = data.results;
    return this.data
  })
  .toPromise();
...

希望这可以澄清您报告的实际错误,但也可以让您更加了解正在发生的事情,因为您已经失去了关于错误的任何重要信息。