Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从ionic原生HTTP get方法获取json响应?_Javascript_Json_Typescript_Ionic Framework_Ionic2 - Fatal编程技术网

Javascript 如何从ionic原生HTTP get方法获取json响应?

Javascript 如何从ionic原生HTTP get方法获取json响应?,javascript,json,typescript,ionic-framework,ionic2,Javascript,Json,Typescript,Ionic Framework,Ionic2,我正在学习Ionic,我已经开始使用一些API,现在我在使用CountryAPI()时遇到了一些问题。我正在使用GET方法接收一个json,其中包含所有名称中有“united”的国家的信息。这是我的密码: import { Component } from '@angular/core'; import { NavController } from 'ionic-angular'; import firebase from 'firebase' import { HTTP } from '@i

我正在学习Ionic,我已经开始使用一些API,现在我在使用CountryAPI()时遇到了一些问题。我正在使用GET方法接收一个json,其中包含所有名称中有“united”的国家的信息。这是我的密码:

import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';

import firebase from 'firebase'
import { HTTP } from '@ionic-native/http'    

@Component({
  selector: 'page-home',
  templateUrl: 'home.html'
})

export class HomePage {

  public resultados: any

  constructor(public navCtrl: NavController, public http: HTTP) {
    this.mget()
  }

  sair(){
    firebase.auth().signOut().then(() => this.navCtrl.setRoot('login'))
  }


  mget(){

    let url = 'http://countryapi.gear.host/v1/Country/getCountries?pName=united'

    this.http.get(url, {}, {}).then( data => {

      console.log(data.data); // data received by server

      let results = JSON.parse(data['_body']).results

    })
  }

}
当我使用console.log来记录接收到的数据时,json格式的数据都很好,但是不可能订阅ionic原生http.get方法,如果我尝试类似的方法

for(let i = 0; i < news.length(); i ++){
      console.log(news[i])
      this.noticias.push({
        name: news[i].name,
        nativeName: news[i].nativeName
      })
    }
for(设i=0;i
不好,它指责news.length()不是函数


我需要获取向量中的所有数据,以便在我的应用程序中使用离子列表将其显示在列表中。

要从国家API获取JSON数据,您应该添加如下提供程序:

ionic g provider countryService
  this.countryService.load().then(data => {
        this.country= data;
      });
然后点击API,如countryService.ts中的以下代码所示

  // ******************************** listing API ***********************************
  load() {

    console.log(' RestServiceProvider Load Method fro listing');
    if (this.data) {
      return Promise.resolve(this.data);
    }

    // don't have the data yet
    return new Promise(resolve => {
      this.http.get("http://countryapi.gear.host/v1/Country/getCountries?pName=united")
        .map(res => res.json().response)
        .subscribe(data => {
          this.data = data;
          resolve(this.data);
        });
    });
  }
要获取国家名称,您应该在主页中调用此方法,如下所示:

ionic g provider countryService
  this.countryService.load().then(data => {
        this.country= data;
      });
使用主页类的html在UI中显示名称:

 <ion-list>
        <ion-item *ngFor="let countrylist of country">
          <h2 style="color: tomato">User Id: {{countrylist.name}}</h2>
          <h4>{{countrylist.nativeName}}</h4>
        </ion-item>
      </ion-list>

用户Id:{{countrylist.name}
{{countrylist.nativeName}

你只需要做新闻。长度不需要括号。。是一个属性而不是一个函数ionic的原生HTTP插件中没有map方法,当我使用angular的HTTP时,我得到了我无法摆脱的CORS错误。