2016-12-02 1 views
2

(A)에 나열된 코드는 test()이 호출 될 때 절대로 HTTP 요청을 보내지 않지만 (B)의 코드는 거의 동일합니다. 문제가 뭔지 아십니까? 나는 요청이 서버 로그를 보면서 보내 졌는지 안다. 또한 브라우저에 붙여 넣기하여 수동으로 (A) 요청을하면 예상되는 응답을 얻습니다. 나는 곤두박질 친다!Angular2가 HTTP GET을 보내지 않음

(A)

import { Constants } from '../toplevel/constants' 

import { Injectable }  from '@angular/core'; 
import { Http, Response, Headers, RequestOptions } from '@angular/http'; 
import { Observable} from 'rxjs/Rx'; 

import 'rxjs/add/operator/map'; 
import 'rxjs/add/operator/catch'; 


@Injectable() 
export class SigninService { 

    constructor (private http: Http, private constants : Constants) { 

    } 

    getToken(username: string, password: string) : Observable<string>{ 

    var url = `${this.constants.apiRoot}/users/${username}?${password}` 

    console.log(`Calling api server with url ${url}`) 

    return this.http.get(url) 
     .map((res:Response) => JSON.stringify(res.json())) 
     .catch((error:any) => Observable.throw(error.json().error || 'Server error')); 

    } 

test() { 

    this.getToken('jc', 'yadayada') 
} 
} 

(B : 발췌)

getDocument(id: string) : Observable<Document>{ 
    return this.http.get(`${this.apiUrl}/documents/${id}`) 
    .map((res:Response) => new Document(res.json()['document'])) 
    .catch((error:any) => Observable.throw(error.json().error || 'Server error')); 

    } 
+0

또한 요청을 활성화합니다

this.getToken('jc', 'yadayada').subscribe() 

및 보내'당신은의 (A) 코드에서 –

+1

을 console.log' 오류 코드 또는 뭔가? catch 옆에'.subscribe()'를 추가하여보십시오. – soywod

+0

디버거를 사용 했습니까? 함수에서 단계별로 무슨 일이 일어나는지 보시겠습니까? –

답변

2

시퀀스 감기이다. 당신이 테스트를 변경해야 내가 게시 한 메시지를 볼 수행

+0

고맙습니다! (작동) –