Ionic framework 离子2-yelpapi

Ionic framework 离子2-yelpapi,ionic-framework,ionic2,yelp,Ionic Framework,Ionic2,Yelp,我正在尝试将Ionic 2应用程序连接到Yelp的API。现在,我只使用从CLI生成并在本地主机上运行的空白Ionic 2应用程序 我的代码: app.module.ts import { BrowserModule } from '@angular/platform-browser'; import { ErrorHandler, NgModule } from '@angular/core'; import { HttpModule } from '@angular/http'; impor

我正在尝试将Ionic 2应用程序连接到Yelp的API。现在,我只使用从CLI生成并在本地主机上运行的空白Ionic 2应用程序

我的代码:

app.module.ts

import { BrowserModule } from '@angular/platform-browser';
import { ErrorHandler, NgModule } from '@angular/core';
import { HttpModule } from '@angular/http';
import { IonicApp, IonicErrorHandler, IonicModule } from 'ionic-angular';
import { SplashScreen } from '@ionic-native/splash-screen';
import { StatusBar } from '@ionic-native/status-bar';

import { MyApp } from './app.component';
import { HomePage } from '../pages/home/home';

@NgModule({
  declarations: [
    MyApp,
    HomePage
  ],
  imports: [
    BrowserModule,
    HttpModule,
    IonicModule.forRoot(MyApp)
  ],
  bootstrap: [IonicApp],
  entryComponents: [
    MyApp,
    HomePage
  ],
  providers: [
    StatusBar,
    SplashScreen,
    {provide: ErrorHandler, useClass: IonicErrorHandler}
  ]
})
export class AppModule {}
import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { Http } from '@angular/http';
import { Headers, RequestOptions } from '@angular/http';
import 'rxjs/add/operator/map';

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

  restaurants:any;
  constructor(public navCtrl: NavController, public http: Http) {
    var headers = new Headers();
    headers.append('Authorization', 'Bearer someString');
    var options = new RequestOptions({headers: headers});

    this.http.get('https://api.yelp.com/v3/businesses/search?term=deli20&latitude=39.59754&longitude=-104.872934', options).map(res => res.json()).subscribe(data => {
        this.restaurants = data.data.children;
        console.log(this.restaurants);
    });
  }



}
home.ts

import { BrowserModule } from '@angular/platform-browser';
import { ErrorHandler, NgModule } from '@angular/core';
import { HttpModule } from '@angular/http';
import { IonicApp, IonicErrorHandler, IonicModule } from 'ionic-angular';
import { SplashScreen } from '@ionic-native/splash-screen';
import { StatusBar } from '@ionic-native/status-bar';

import { MyApp } from './app.component';
import { HomePage } from '../pages/home/home';

@NgModule({
  declarations: [
    MyApp,
    HomePage
  ],
  imports: [
    BrowserModule,
    HttpModule,
    IonicModule.forRoot(MyApp)
  ],
  bootstrap: [IonicApp],
  entryComponents: [
    MyApp,
    HomePage
  ],
  providers: [
    StatusBar,
    SplashScreen,
    {provide: ErrorHandler, useClass: IonicErrorHandler}
  ]
})
export class AppModule {}
import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { Http } from '@angular/http';
import { Headers, RequestOptions } from '@angular/http';
import 'rxjs/add/operator/map';

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

  restaurants:any;
  constructor(public navCtrl: NavController, public http: Http) {
    var headers = new Headers();
    headers.append('Authorization', 'Bearer someString');
    var options = new RequestOptions({headers: headers});

    this.http.get('https://api.yelp.com/v3/businesses/search?term=deli20&latitude=39.59754&longitude=-104.872934', options).map(res => res.json()).subscribe(data => {
        this.restaurants = data.data.children;
        console.log(this.restaurants);
    });
  }



}
home.html

<ion-header>
  <ion-navbar>
    <ion-title>
      Ionic Blank
    </ion-title>
  </ion-navbar>
</ion-header>

<ion-content padding>
  The world is your oyster.
  <p>
    If you get lost, the <a href="http://ionicframework.com/docs/v2">docs</a> will be your guide.
  </p>
  <!--Just using Ionic 2's default home page, just wanna output my JSON to the console for now.-->
</ion-content>

您对我可能遗漏的内容有何想法?

将此内容添加到您的浏览器中,打开并重新加载页面。它应该可以正常工作

将其添加到浏览器中,打开并重新加载页面。它应该可以正常工作

看起来您需要在HTTP头中提供一个访问令牌-查看此处了解更多信息:这就是我所使用的:var headers=new headers();headers.append('Authorization','Bearer someString');var options=newrequestoptions({headers:headers});你在用你真正的代币替换“someString”,对吧?哈哈,是的,我是。我确实注意到了Github问题,作者确定YelpAPI不支持CORS或JSONP。这是否意味着Ionic 2应用程序将无法访问Yelp API,因为(我很确定)它使用Javascript发出请求?看起来您需要在HTTP头中提供访问令牌-查看此处了解更多信息:我以为我正在使用:var headers=new headers();headers.append('Authorization','Bearer someString');var options=newrequestoptions({headers:headers});你在用你真正的代币替换“someString”,对吧?哈哈,是的,我是。我确实注意到了Github问题,作者确定YelpAPI不支持CORS或JSONP。这是否意味着Ionic 2应用程序将无法访问Yelp API,因为(我很确定)它使用Javascript发出请求?欢迎提供指向解决方案的链接,但请确保您的答案在没有它的情况下是有用的:这样您的其他用户将知道它是什么以及它为什么存在,然后引用你链接到的页面最相关的部分,以防目标页面不可用。欢迎链接到解决方案,但请确保您的答案在没有它的情况下是有用的:这样您的其他用户就会知道它是什么以及它为什么在那里,然后引用您链接到的页面的最相关部分,以防目标页面不可用。