Angular 2 http得不到?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (23)

我用get调用来打一个url,但即使在浏览器的网络中,似乎也无法通过,我无法找到被调用的url。

该程序将进入该方法控制台日志记录的上方和下方获取调用,但没有获取调用

我的服务方法

import { Headers, Http, Response } from '@angular/http';
import { Injectable } from '@angular/core';
import { Persons } from './mock-people';
import { Person } from './person';
import {Observable} from 'rxjs/Rx';

    getAllPersons():void{
        console.log("Here");
        this.http.get(`http://swapi.co/api/people/1`).map((response:Response) => {
            console.log(response.json());
            response.json();
        });
        console.log("Comes here 2");
        }

在app.module.ts中导入Httpmodule

提问于
用户回答回答于

Http使用rxjs

  this.http.get(`http://swapi.co/api/people/1`).map((response:Response) => {
                console.log(response.json());
                response.json();
            }).subscribe();

像这样返回http.get方法::

 getAllPersons():Observable<any>{
    console.log("Here");
       return this.http.get(`http://swapi.co/api/people/1`).map((response:Response) => {
        console.log(response.json());
        response.json();
    });
    } 

接着 :

   getAllPersons().subscribe();
用户回答回答于

方法应该使用Observable返回api调用的响应。

service.cs

import { Http, Jsonp, Response, Headers, RequestOptions } from '@angular/http';
import { Injectable } from '@angular/core';
import { Persons } from './mock-people';
import { Person } from './person';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/forkJoin';

@Injectable()
export class Service {
  constructor(private jsonp: Jsonp, private _http: Http) { }

  getAllPersons():Observable<any>{
    console.log("Here");

    let headers = new Headers({ 'Content-Type': 'application/json' });
    let options = new RequestOptions({ headers: headers, method: 'get' });

    return this._http.get('http://swapi.co/api/people/' + personId)
        .map((res:Response) => {
            return <any>res.json();
        })
        .catch(this.handleError);          

    console.log("Comes here 2");
  }

  private handleError(error: Response) {
    console.error(error);
    return Observable.throw(error.json().error || ' error');
  }
}

选项和标题是可选的。

扫码关注云+社区