es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Angular 11 Has proporcionado ‘undefined’ donde se esperaba un flujo de datos.

No estoy recibiendo el mensaje de error y el código de error cuando proviene del lado del servidor en Angular.

A continuación, el código que estoy usando para todos los servicios.

Estoy usando Angular 11 y en el siguiente código obtengo un error.

postEvidenceFiles(path: string, data: any, _arguments?: HttpParams) {
    let headers = new HttpHeaders();
    headers = headers.set(
      'Authorization',
      `Bearer ${this.AuthStorageService.getToken()}`,
    );

    headers.append('Accept', 'application/json, text/plain,');

    const options = {
        headers,
    };

    return this.intercept(
        this.http
            .post<any>(path, data, options)
            .pipe(catchError(this.handleError)),
    );
}

Intercept:

intercept(observable: Observable): Observable {
this.pendingRequests++;
/* NProgress.start(); */

return observable.pipe(
    tap(
        () => {
            // No hacer nada
        },
        (error) => {
            if (error?.status == 401) {
                // Redirigir a la página de inicio de sesión
                // console.log(error)
                this.router.navigate(['/login'], {
                    queryParams: { return_url: this.router.url },
                });
            }
        },
    ),
    finalize(() => {
        this.pendingRequests--;
        if (this.pendingRequests <= 0) {
            /*    NProgress.done(); */
        }
    }),
);

}


y manejar el error:

handleError(error: HttpErrorResponse) {
// console.log(error);
if (error.error instanceof ErrorEvent) {
// Se produjo un error en el lado del cliente o en la red. Manejarlo en consecuencia.
// console.error(‘Se produjo un error:’, error.error.message);
return throwError(error.error.message);
} else {
// El backend devolvió un código de respuesta no exitoso.
// El cuerpo de respuesta puede contener pistas sobre lo que salió mal,
// console.error(
// Se devolvió un código ${error.status} del backend, +
// el cuerpo fue: ${error.error}
// );
return throwError(error.error);
}
}
“`

Por favor, revise y déjeme saber dónde estoy cometiendo un error en esto.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que el código proporcionado no incluye la sección donde se capturan y muestran los mensajes y códigos de error. Sin esa sección de código, no es posible determinar dónde puede estar el error.

    Además, no está claro cuál es exactamente el problema: si no se muestra ningún mensaje de error en absoluto o si se muestra un mensaje/código de error incorrecto.

    Para diagnosticar el problema, puede ser útil agregar instrucciones de console.log en todo el código para ver qué valores se devuelven y determinar dónde está el problema.

Comments are closed.