【问题标题】:Angular 2/4 | How can i get the API data with Token角 2/4 |如何使用 Token 获取 API 数据
【发布时间】:2017-11-03 10:02:21
【问题描述】:

早安,

如何使用 angular 2/4 获取带有令牌的 api 数据?

这是我的代码:

import { Component, ViewEncapsulation } from '@angular/core';
import { Http, Response } from '@angular/http';
import 'rxjs/add/operator/map';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css'],
  encapsulation: ViewEncapsulation.None,
})

export class AppComponent {

private apiUrl = 'http://apiurlhere.xom/data';
data: any = {};

constructor(private http: Http){
    console.log('hi');
    this.getVoicepickData();
    this.getData();
}

//set API header
    let headers = new Headers({
        'Token': "XXXXXXXXXXTOKEN HEREXXXXXXXXXX",
        'Content-Type': 'application/json'
    });

    getData(){
        return this.http.get(this.apiUrl, {headers: headers})
            .map((res: Response) => res.json())
    }

    getVoicepickData() {
        this.getData().subscribe(data => {
            console.log(data);
            this.data = data
        })
    }
}

我收到错误消息:模块解析失败:函数之外的“返回”。有人可以告诉我如何使用令牌获取 api 数据吗?感谢您的帮助。

【问题讨论】:

    标签: angular typescript angular2-http


    【解决方案1】:

    您不能在函数范围之外设置变量。但是,您可以将其设置为公共属性或在函数 getData 本身内。

    希望对你有帮助

    @Component({
      selector: 'app-root',
      templateUrl: './app.component.html',
      styleUrls: ['./app.component.css'],
      encapsulation: ViewEncapsulation.None,
    })
    
    export class AppComponent {
    
    private apiUrl = 'http://apiurlhere.xom/data';
    data: any = {};
    headers: Headers;
    
    constructor(private http: Http){
        console.log('hi');
        this.getVoicepickData();
        this.getData();
    
        this.headers = new Headers({
            'Token': "XXXXXXXXXXTOKEN HEREXXXXXXXXXX",
            'Content-Type': 'application/json'
        });
    }
    
        // YOU CANNOT SET SOMETHING HERE
    
        getData(){
            return this.http.get(this.apiUrl, {headers: this.headers})
                .map((res: Response) => res.json());
        }
    
        getVoicepickData() {
            this.getData().subscribe(data => {
                console.log(data);
                this.data = data
            });
        }
    }
    

    【讨论】:

    • 我的错,我没有检查我的牙套-,-
    • 是的,顺便说一下我有错误 TS1005: ';'你知道怎么解决吗?
    • 我在几个地方添加了分号。可能就是这样。如果没有,您应该自己调试代码。
    猜你喜欢
    • 1970-01-01
    • 2018-03-28
    • 1970-01-01
    • 1970-01-01
    • 2019-03-21
    • 1970-01-01
    • 2018-09-09
    • 1970-01-01
    • 2021-09-30
    相关资源
    最近更新 更多