angular2 http冲突InMemoryWebApiModule

时间:2016-12-23 12:09:49

标签: http angular proxy

首先我想知道网址是错误的,但事实证明它是正确的。 这是github api作为我的测试网址

我把它放在chrome中,它会返回欲望结果。

其次我想知道我的代码是否错误

constructor(private fb: FormBuilder, private _userService: UserService, private _http:Http) {

        this._http
            .get('https://api.github.com/search/repositories?q=ng2&page=1&per_page=10')
            .map((res: Response) => res.json())
            .catch((res: Response) => {
              return Observable.of({items: [], totalCount: 0, error: res.json()});
            })
            .subscribe(d => {
                console.log(d);
            })
    }

此代码始终收到此错误消息:

  

404 - 未找到未找到集合'存储库'

但可以在我的Chrome中访问此网址。

我发现我的代码没有任何问题。

我终于找到了为什么会这样。

因为我将InMemoryWebApiModule添加到我的模块中。

但我不知道这里的根本原因是什么

有人可以告诉我吗?

1 个答案:

答案 0 :(得分:1)

**

编辑:在提到InMemoryWebApiModule之前提供了这个答案。

**

UserService

中执行http请求
export class UserService {

    constructor(private _http: Http) {  }

    getSomething() {
        return this._http.get('https://api.github.com/search/repositories?q=ng2&page=1&per_page=10')
         .map((res: Response) => res.json())
    }
}

在您的组件中,我建议您将方法放在ngOnInit而不是构造函数中:

ngOnInit() {
    this._userService.getSomething()
      .subscribe(d => console.log(d);
}

以下是一些信息:Difference between OnInit and Constructor

请记住在班上实施OnInit ...... export class YourClass implements OnInit

我真的建议你看看Tour Of Heroes - Http

EDIT!我查了一下,在这篇文章中我对你的代码所做的更改,在Chrome和Firefox中都有效!见下文

enter image description here enter image description here

这里有一名工作人员...... Plunk