json - 将 header 添加到 API Http 请求、Angular 2、Ionic 2

标签 json api ionic-framework angular

我有一个 ionic 2 应用程序(使用 Angular 2 Http),我有从 API 获取 JSON 的代码,但是我需要发送应用程序 ID、应用程序 key 和接受作为 header ,这是主要代码...

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");
});

 }

这就是我尝试添加 header 的方式,但是它不起作用...

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");
});

 }

有什么想法吗?

谢谢

最佳答案

Headers必须在RequestOptions里面设置,也就是http.get()的第二个参数

此外,您的代码中存在语法错误。请求选项是.get(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).

经过一些误解,我会在这里留下你自己的代码和我的建议:

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");
  });

}

关于json - 将 header 添加到 API Http 请求、Angular 2、Ionic 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37841949/

相关文章:

json - 为什么 JSON.parse ("string") 失败

json - 在 Purescript 中的 AST 中输入信息

c# - 如何反序列化没有名称的 JSON 数组?

api - 使用 Quip API,如何获取所有线程的列表?

ios - 如何在不打开 xcode 的情况下将 ionic 构建推送到 ios 设备?

typescript - React-leaflet:默认标记在缩放时移动

c# - 将 NServiceBus 事件从 v6 JSON 发布到 v4 XML 环境

mysql - 连接到现有数据库 - node.js

javascript - $ionicDevice.ready() 在 Linux 上构建时不会触发

javascript - Ionic Serve- XMLHttpRequest 无法在浏览器上加载