Angular 2 RC 4 Http-пост не срабатывает

Я пытаюсь запустить почтовый запрос для своего приложения, и он не работает, я пробовал несколько способов. Я не вижу, чтобы запрос запускался на вкладке сети в Chrome. Не уверен, в чем проблема, любая помощь приветствуется.

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())
    }

}


person user2192298    schedule 15.07.2016    source источник
comment
Откуда вам createUser звонят?   -  person pd farhad    schedule 15.07.2016
comment
Я пропустил добавление подписки в компонент, после того как добавил, что все работает нормально. удивлен, что ошибки нет.   -  person user2192298    schedule 15.07.2016
comment
Я думаю, карту убрали, она использовалась только в очень старых альфа-версиях.   -  person Reginaldo Camargo Ribeiro    schedule 15.07.2016


Ответы (3)


Сначала вам нужно зафиксировать ошибку и устранить ошибку:

this._http.post(this._url, JSON.stringify(user),{headers: headers})
      .subscribe(
      (res) => {
            // on success
      },
      (err) => {
            // on error
            console.error(err);
      }
person Reginaldo Camargo Ribeiro    schedule 15.07.2016

попробуйте назвать это так, чтобы вы могли отследить ошибку

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);

в этом методе обработать ошибку

  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);
  }
person rashfmnb    schedule 15.07.2016

вызвать службу с помощью обещания

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