rest - Angular2 Http/Jsonp 不发出请求

标签 rest angular angular2-services

我正在使用 Angular 2.0.0-beta.16 并尝试从我的 RESTful API 获取数据。我有以下服务:

import {Injectable}     from 'angular2/core';
import {Jsonp, Response, Headers, RequestOptions} from 'angular2/http';
import {Store}          from './store';
import {Observable}     from 'rxjs/Observable';
import 'rxjs/Rx';

@Injectable()
export class StoreService {
    constructor(private jsonp: Jsonp) {

    }

    getStores(): Observable<Store[]> {
      console.log("getting stores");
      // let headers = new Headers({ 'Content-Type': 'application/json' });
      // let options = new RequestOptions({ headers: headers });
        return this.jsonp.get("http://localhost:8080/stores")
            .map(this.extractData)
            .catch(this.handleError);
    }

    private extractData(res: Response) {
      console.log(res.status);
        if (res.status < 200 || res.status >= 300) {
            throw new Error('Bad response status: ' + res.status);
        }
        let body = res.json();
        return body.data || {};
    }


    private handleError(error: any) {
        // In a real world app, we might send the error to remote logging infrastructure
        let errMsg = error.message || 'Server error';
        console.error(errMsg); // log to console instead
        return Observable.throw(errMsg);
    }
}

在我的组件中,我正在调用 getStores()。我知道它正在进入 getStores() 函数,因为我收到了 console.log 消息。但是,没有其他事情发生。我在 chrome 开发工具中看不到任何请求。没有错误记录到控制台。根本不值一提。我已经尝试了 JsonpHttp 但它们都给出了相同的结果。

最佳答案

您需要订阅 getStores() 返回的可观察对象。 Observables 是惰性的,没有 subscribe() 或 `toPromise()

什么都不做
getStores().subscribe(val => { console.log(val); };

关于rest - Angular2 Http/Jsonp 不发出请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36945777/

相关文章:

java - Spring 使用 @ResponseBody 返回修改后的 JSONObject

javascript - 如果 http 状态代码不是 200,则缺少 CORS header ‘Access-Control-Allow-Origin’

添加构造函数时,Angular Component 不呈现 html

angular - 在 Angular 2 API 驱动的 TreeView 中防止重复的 HTTP 请求

Angular 2 : Property 'toPromise' does not exist on type 'Observable<Response>'

angular - CookieXSRFStrategy 在 AOT 模式下不工作 @angular

php - Wamp 服务器——无法执行任何 PHP Rest API

java - 为什么 maven install npm 会出现这个错误?

angular - 为什么 Angular 6 在文件夹 "e2e/app"中生成我的服务?

java - 当 ReSTLet 应该返回 400 Bad Request 时,它是否返回 415 Unsupported Media Type?