Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

439
Views
error de redirección de nestjs: no se pueden establecer encabezados después de enviarlos

solicitar /login/login.html

redirigir / iniciar sesión

Cambio la redirección en el interceptor

 export class UricheckInterceptor implements NestInterceptor { constructor(private uri: string[]) {} intercept(context: ExecutionContext, next: CallHandler): Observable<any> { const response = context.switchToHttp().getResponse(); const request = context.switchToHttp().getRequest(); const { pathname } = parseurl(request); const pathLength = pathname.length; const pathSlash = pathname.lastIndexOf('/'); const pathLast = pathname.substring(pathSlash + 1, pathLength); const queryString = request.query; if (pathLast === this.uri[1]) { if (Object.keys(queryString).length > 0) { if (queryString.code !== undefined && queryString.bst !== undefined) { response.redirect(301, `./${this.uri[0]}?code=${queryString.code}&bst=${queryString.bst}`); next.handle(); } } else { return next.handle(); } } }

La redirección continúa y se produce un error.

 This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason: Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client....

No puedo resolverlo en absoluto.

Espero sinceramente su ayuda.

¿Qué hice mal?

about 4 years ago · Santiago Gelvez
1 answers
Answer question

0

Es probable que su encabezado se envíe con la respuesta, pero no verá ese encabezado cuando el navegador realmente siga la redirección y luego solicite la nueva URL. Los navegadores no hacen eso. Recuerde, cuando hace res.redirect(), envía una respuesta con un estado 301/302 y un encabezado de ubicación. El navegador ve ese 301/302 y lee el encabezado de la ubicación y luego realiza una nueva solicitud del navegador a su servidor para la ubicación redirigida. Los encabezados de la respuesta anterior o siguiente NO se agregan a la nueva solicitud de la ubicación redirigida.

Las formas habituales de pasar datos como este a solicitudes redirigidas son:

  1. Póngalo en la cadena de consulta de la URL redirigida como parámetro. Su servidor verá esa cadena de consulta cuando lleguen las solicitudes redirigidas.
  2. Pon una galleta. Su servidor puede ver la cookie cuando llega la solicitud redirigida.
  3. Establezca datos en un objeto de sesión del lado del servidor al que se pueda acceder en la próxima solicitud. Luego, su servidor puede ver la sesión cuando ingresa la solicitud redirigida. Solo la primera opción anterior (parámetro de consulta) es completamente segura porque las otras pueden confundirse acerca de a qué solicitud pertenecen los datos si hay otras solicitudes provenientes de ese mismo usuario.
about 4 years ago · Santiago Gelvez Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!