Angular 2 HTTP GET返回URL null

时间:2016-09-23 00:12:39

标签: http angular get

我正在尝试使用带有Typescript的angular 2进行简单的HTTP GET请求。我收到404错误,空url。下面显示的是我的组件文件,以及我收到的错误。

import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { BreadcrumbService } from './breadcrumbService';
import { Http, Response } from '@angular/http';

@Component({
  moduleId: module.id,
  providers: [ BreadcrumbService],
  templateUrl: 'html/appList.html',
  styleUrls: ['css/list.css']

})
export class HealthComponent {
  constructor(private http: Http) {
      this.http.get('http://jsonplaceholder.typicode.com/posts/1')
      .toPromise()
      .then((res: Response) => {
      console.log('RES: ', res);
      })
    .catch((err: Error) => {
      console.log('ERR!!: ', err);
    });
   }
}

错误消息:

Response {_body: Object, status: 404, ok: false, statusText: "Not Found",     headers: Headers…}
 _body:Object
 headers:Headers 
 ok:false
 status:404
 statusText:"Not Found"
 type:2
 url:null
 __proto__:Body

2 个答案:

答案 0 :(得分:4)

这可能是InMemoryWebApiModule.forRoot相关问题。当您加载内存中的api但尝试访问未定义的URL时会发生这种情况。解决此问题的方法是在passThruUnknownUrl: true config:

中设置app.module

InMemoryWebApiModule.forRoot(InMemoryDataService, {passThruUnknownUrl: true}) ..

答案 1 :(得分:1)

如您所见,它是404错误,分析您对服务器的请求。 404错误表示找不到您要求的内容。

关于您提出请求的方式,请尝试使用.map代替toPromise

尝试不在构造函数上发出HTTP请求,而是使用ngOnInit。