我正在尝试使用带有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
答案 0 :(得分:4)
这可能是InMemoryWebApiModule.forRoot
相关问题。当您加载内存中的api但尝试访问未定义的URL时会发生这种情况。解决此问题的方法是在passThruUnknownUrl: true
config:
app.module
InMemoryWebApiModule.forRoot(InMemoryDataService, {passThruUnknownUrl: true}) ..
答案 1 :(得分:1)
如您所见,它是404错误,分析您对服务器的请求。 404错误表示找不到您要求的内容。
关于您提出请求的方式,请尝试使用.map
代替toPromise
。
尝试不在构造函数上发出HTTP请求,而是使用ngOnInit。