2016-06-26 2 views
2

각도 2를 사용하여 요청을 받고 게시물을 요청합니다. 내 요청을 잘 작동하지만, 내 게시물에 대한 내 Firebug Net 패널을 확인하면 요청이 이루어지지 않습니다.각도 2의 HTTP 게시물 요청이 호출되지 않고 있습니다.

코드 방법은 다음과 같습니다. 또한 컴포넌트 클래스에서 호출하는 메소드를 등록했습니다.

import {Injectable} from "angular2/core"; 
import {Http, Response, Headers, RequestOptions, Jsonp, URLSearchParams} from "angular2/http"; 
import { Observable }  from 'rxjs/Observable'; 
import 'rxjs/add/operator/map'; 

@Injectable() 
export class MyService{ 
    constructor (private _http: Http){} 


testPost(){  

    var json = JSON.stringify({"userId": 111, "givenName": "CZ"}); 
    var body = "json="+json; 
    var headers = new Headers({ 'Content-Type': 'application/json' }); 
    var options = new RequestOptions({ headers: headers }); 

    return this._http.post("http://mylocal.post.url", body, options) 
     .map(this.extractData) 
     .catch(this.handleError); 

} 

    private extractData(res: Response) { 
    alert("test whether this method is reached"); 

    let body = res.json(); 
    return body.data || { }; 
    } 

    private handleError (error: any) { 
    alert("test whether this method is reached"); 

    let errMsg = (error.message) ? error.message : 
     error.status ? `${error.status} - ${error.statusText}` : 'Server error'; 
    console.error(errMsg); // log to console instead 
    return Observable.throw(errMsg); 
    }  

//testGet method is running well 
testGet(link:string){ 

    return this._http.get(link) 
    .map(res => res); 

}  
} 

내 구독 방법 onTestPost()는 페이지의 단추에 할당됩니다.

onTestPost(){ 
    this.myService.testPost() 
    .subscribe(
     data => this.getData = JSON.stringify(data), 
     error => alert(error), 
     () => console.log("Finished")    
     ); 
} 

두 가지 도우미 메서드의 시작 부분에 경고문을 넣었습니다. 경고가 표시되지 않습니다. Firebug로 디버깅 할 때 내 로컬 게시물 url에 요청 된 요청이 표시되지 않습니다.

내 testGet 메서드가 올바르게 작동하는 동안 testPost에 대해 누락 된 것이 무엇인지 알 수 없습니다.

+0

코드는 괜찮아 보입니다를 참조하십시오, 당신이 정말로 제대로 가입하지 않은 대부분. – dfsq

+0

다만, 모의 백엔드 같은 것이 요청을 포착하지 못하는지 확인하십시오. –

답변

10

구독 방법이 여기에있는 문제라고 생각합니다. subscribe이 호출되었는지 확인하십시오.

"이 관측 가능 함은 추울 것입니다. 즉, 관측 가능 항목에 가입 할 때까지 요청이 전송되지 않음을 의미합니다."

https://angular.io/docs/ts/latest/guide/server-communication.html

+0

답장을 보내 주셔서 감사합니다! – ChrisZ

+0

구독 방법을 추가했습니다. 그러나, 나는 내 서비스 메소드 testPost()가 호출되었다고 생각한다. 나는 경고 진술을했다. return 문이 실행되기 전에 코드를 보여주었습니다. – ChrisZ

+0

이 회신을 일찍 보았 으면합니다. 하루 종일 낭비하는 낭비를 낭비했다. – mehta

0
testPost() : Observable <Response> //import{Response} from '@angular/http' 
{  
var json = JSON.stringify({"userId": 111, "givenName": "CZ"}); 
var headers = new Headers({ 'Content-Type': 'application/json' }); 
var options = new RequestOptions({ headers: headers }); 
return this._http.post("http://mylocal.post.url/api",JSON.stringify(json), options) 
    .map((res:Response)=>res.json()) 
    .catch(this.handleError); 
} 
관련 문제