Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

259
Vistas
Angular 2 http.post () no está enviando la solicitud

Cuando hago una solicitud de publicación, angular 2 http no envía esta solicitud

 this.http.post(this.adminUsersControllerRoute, JSON.stringify(user), this.getRequestOptions())

la publicación http no se envía al servidor, pero si hago la solicitud de esta manera

 this.http.post(this.adminUsersControllerRoute, JSON.stringify(user), this.getRequestOptions()).subscribe(r=>{});

¿Es esto intencionado y, si es así, alguien puede explicarme por qué? ¿O es un error?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Dado que el método de post de la clase Http devuelve un observable, debe suscribirse para ejecutar su procesamiento de inicialización. Los observables son perezosos.

Deberías echar un vistazo a este video para más detalles:

  • https://egghead.io/lessons/rxjs-rxjs-observables-vs-promises
over 4 years ago · Santiago Trujillo Denunciar

0

Debe suscribirse al observable devuelto si desea que se ejecute la llamada.

Consulte también la siguiente documentación angular " Comunicación con servicios de back-end mediante HTTP ".

¡ Suscríbete siempre!

Un método HttpClient no comienza su solicitud HTTP hasta que llamas subscribe() en el observable devuelto por ese método. Esto es cierto para todos los métodos HttpClient .

AsyncPipe se suscribe (y cancela la suscripción) automáticamente.

Todos los observables devueltos por los métodos HttpClient son fríos por diseño. La ejecución de la solicitud HTTP se aplaza , lo que le permite extender lo observable con operaciones adicionales como tap y catchError antes de que ocurra algo.

Llamar subscribe(...) activa la ejecución del observable y hace que HttpClient componga y envíe la solicitud HTTP al servidor.

Puede pensar en estos observables como planos para solicitudes HTTP reales.

De hecho, cada subscribe() inicia una ejecución separada e independiente del observable. Suscribirse dos veces da como resultado dos solicitudes HTTP.

 const req = http.get<Heroes>('/api/heroes'); // 0 requests made - .subscribe() not called. req.subscribe(); // 1 request made. req.subscribe(); // 2 requests made.
over 4 years ago · Santiago Trujillo Denunciar

0

El método de obtención no requiere el uso del método de suscripción, pero el método de publicación requiere la suscripción. Obtenga y publique códigos de muestra a continuación.

 import { Component, OnInit } from '@angular/core' import { Http, RequestOptions, Headers } from '@angular/http' import 'rxjs/add/operator/map' import 'rxjs/add/operator/catch' import { Post } from './model/post' import { Observable } from "rxjs/Observable"; @Component({ templateUrl: './test.html', selector: 'test' }) export class NgFor implements OnInit { posts: Observable<Post[]> model: Post = new Post() /** * */ constructor(private http: Http) { } ngOnInit(){ this.list() } private list(){ this.posts = this.http.get("http://localhost:3000/posts").map((val, i) => <Post[]>val.json()) } public addNewRecord(){ let bodyString = JSON.stringify(this.model); // Stringify payload let headers = new Headers({ 'Content-Type': 'application/json' }); // ... Set content type to JSON let options = new RequestOptions({ headers: headers }); // Create a request option this.http.post("http://localhost:3000/posts", this.model, options) // ...using post request .map(res => res.json()) // ...and calling .json() on the response to return data .catch((error:any) => Observable.throw(error.json().error || 'Server error')) //...errors if .subscribe(); } }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda