在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中访问它。