在Ionic 2 / Angular 2中使用JSONP

时间:2016-12-06 23:01:33

标签: json angular jsonp ionic2

在Ionic 2项目中从JSONP流中提取数据时遇到问题。

我使用@ angular / http的jsonp库和jsonp.request作为我的拉取方法。

这是我家的样子:

import { Component } from '@angular/core';
import { NavController, Platform } from 'ionic-angular';
import { Http, Jsonp } from '@angular/http';
import 'rxjs/add/operator/map';


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

export class HomePage {

  constructor(public navCtrl: NavController, platform: Platform, public http: Http, public jsonp: Jsonp) {

    platform.ready().then(() => {

    this.jsonp.request('<the_url>?callback=JSONP_CALLBACK', { method: 'Get' })
          .map(res => res.json())
          .subscribe(
              (data) => {
                  console.log(data);
              },
              (error) => {
                  console.log(error);
              });
    }
  }
  parseData(data) {
      console.log(data);
  }
}

但是我一直收到错误:

Uncaught ReferenceError: parseData is not defined(…)
(anonymous function) @ json.xsl?callback=ng_jsonp.__req0.finished:2

Response
_body: "JSONP injected script did not invoke callback."
headers: Headers
ok: true
status: 200
statusText: "Ok"
type: 3
url: "< the_url >?callback=ng_jsonp.__req0.finished"
proto: Body

我不确定回调的确切位置。我能够提出的唯一解决方案是将其放入index.html

  <script>
    function parseData(data) {
    console.log(data);
  }
  </script>

哪个打印出来自JSONP的数据但是不可用,因为我无法在home.ts中访问它。

0 个答案:

没有答案