2016-07-15 2 views
0

내 앱에 대한 게시물 요청을 실행하려고하는데 작동하지 않아 여러 가지 방법을 시도했습니다. 크롬의 네트워크 탭에서 요청이 실행되는 것을 확인할 수 없습니다. 문제가 무엇인지 잘 모르는 경우 도움이됩니다.각도 2 RC 4 Http post not firing

import { Injectable } from '@angular/core'; 
import { Http, Headers } from '@angular/http'; 
@Injectable() 
export class UserService{ 
    private _url="users"; 

    constructor(private _http: Http){ 
    } 

    checkIfUsernameExists(username){ 
    return this._http.get(this._url+"/"+username) 
       .map(response => response.json()) 
    } 

    createUser(user){ 
    let headers = new Headers(); 
    headers.append('Content-Type', 'application/json') 
    console.log(JSON.stringify(user)); 
    return this._http.post(this._url, JSON.stringify(user),{headers: headers}) 
       .map(response => response.json()) 
    } 

}

+0

를 사용하여 서비스를? –

+0

구성 요소에 구독을 추가하지 못했습니다. 추가 한 후에 제대로 작동합니다. 놀람 아무런 오류가 없습니다. – user2192298

+0

지도가 제거되었다고 생각합니다. 아주 오래된 알파 버전에서만 사용되었습니다. –

답변

1

먼저 처리하므로이 방법에 오류

let headers = new Headers({ 'Content-Type', 'application/json' }); 
let options = new RequestOptions({ headers: headers }); 

this.http.post(this._url, JSON.stringify(user),{headers: headers}) 
     .toPromise() 
     .then((res: Response) => { 
      let body = res.json(); 
      this.authService.fillAuthDataFromLogin(body); 
      this.router.navigate(['/Home']); 
      return body.data || {}; 
     }) 
     .catch(this.handleError); 

을 추적 할 수 있습니다과 같이 호출 할 수 캡처오류 및 오류 해결 :

this._http.post(this._url, JSON.stringify(user),{headers: headers}) 
     .subscribe(
     (res) => { 
      // on success 
     }, 
     (err) => { 
      // on error 
      console.error(err); 
     } 
0

시도하면 을 필요로하는 오류를

private handleError(error: any) { 
    ////debugger; 
    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); 
    } 
0

전화 약속을 당신의`createUser` 받고 통화에서

 this.UserService.createuser(user) 
      .subscribe(
      data => { this.responseModel= data }, 
      error => console.log('error'), 
      () => this.getComplete() //complete function 
     );