2016-06-15 7 views
4

私はイオン2アプリ(角2のHttpを使用しています)を持っていますが、私はAPIからJSONを取得するコードを持っていますが、 ID、アプリキーと...そのは動作していないが、私はヘッダーを追加しようとしましたか...これはメインのコードで、ヘッダとしてAPIにヘッダーを追加する、角2、イオン2

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

@Component({ 
templateUrl: 'build/pages/latest-page/latest-page.html' 
}) 
export class LatestPage { 
static get parameters() { 
return [[NavController]]; 
} 

constructor(_navController, http) { 

this._navControler = _navController; 
this.http = http; 

this.http.get("https://twit.tv/api/v1.0/people/77").subscribe(data => { 
console.log("Got Data"); 
this.items = JSON.parse(data._body).people; 
}, error => { 
console.log("Error with Data"); 
}); 

} 

を受け入れ、これはある

constructor(_navController, http) { 

this._navControler = _navController; 
this.http = http; 

var headers = new Headers(); 
headers.append('app-id', '0000'); 
headers.append('app-key', 'abc000abc'); 
headers.append('Accept', 'application/json '); 

this.http.get("https://twit.tv/api/v1.0/people/77"),{"Headers": headers}.subscribe (data => { 
console.log("Got Data"); 
this.items = JSON.parse(data._body).people; 
}, error => { 
console.log("Error with Data"); 
}); 

} 

アイデア?

おかげ

答えて

6

ヘッダは、あなたのコードの構文エラーを持っているだけでなく二番目のパラメータhttp.get()

である、RequestOptionsの内側に設定する必要があります。リクエストのオプションは、に.getの2番目のパラメータである(URL、{})、そして、あなたは次のように書いた:に.get(URL)、{}

this.http.get("https://twit.tv/api/v1.0/people/77",{"Headers": headers}).subscribe (data => { 
 
console.log("Got Data"); 
 
this.items = JSON.parse(data._body).people; 
 
}, error => { 
 
console.log("Error with Data"); 
 
});

明示的なオプションを要求し作成しています。いくつかの誤解の後

let opt: RequestOptions 
 
let myHeaders: Headers = new Headers 
 
myHeaders.set('Content-type', 'application/json') 
 
opt = new RequestOptions({ 
 
    headers: myHeaders 
 
}) 
 

 
_http.get(url, opt).

、私はあなたが私の提案を独自のコードだここに残しておきます:私は、だから、3つのヘッダを追加する

constructor(_navController, http) { 
 
    
 
/*this isn't necessary, _navController and http are already available for "this. "*/ 
 
    this._navControler = _navController; 
 
    this.http = http; 
 
    
 
    let opt: RequestOptions 
 
    let myHeaders: Headers = new Headers 
 
    myHeaders.set('app-id', 'c2549df0'); 
 
    myHeaders.append('app-key', 'a2d31ce2ecb3c46739b7b0ebb1b45a8b'); 
 
    myHeaders.append('Content-type', 'application/json') 
 
    
 
    opt = new RequestOptions({ 
 
    headers: myHeaders 
 
    }) 
 
    
 
    this.http.get("https://twit.tv/api/v1.0/people/77",opt).subscribe (data => { 
 
    console.log("Got Data"); 
 
    this.items = JSON.parse(data._body).people; 
 
    
 
    }, error => { 
 
    console.log("Error with Data"); 
 
    }); 
 

 
}

+0

myHeaders.set( 'Content-type'、 'application/json')行を3回実行しますか? – CarlRyds

+0

これを取得しています... SyntaxError:/Users/Carl/TwitCasts/app/pages/latest-page/latest-page.js:ファイルを解析中に予期しないトークン(18:10):/ Users/Carl/TwitCasts/app/pages/latest-page/latest-page.js – CarlRyds

+0

複数のヘッダーを追加するには、headers.append()を使用します。 –

関連する問題