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.

Redirección de páginas en NuxtJs con el servidor backend

Estoy construyendo un sitio web que incluye una opción de pago con NuxtJs. Pero estoy obteniendo un error CORS cuando quiero redirigir a la página de pago del integrador de la terminal virtual.

En el lado del backend, estoy usando Golang/Echo de la siguiente manera:

func startPaymentProcess(c echo.Context) {
    header := c.Response().Header()
    header.Add("Access-Control-Allow-Origin", "*")
    header.Add("Access-Control-Allow-Methods", "DELETE, POST, GET, OPTIONS")
    header.Add("Access-Control-Allow-Headers", "Content-Type, Authorization")

    //...
    // hacer algunas validaciones
    //..

    c.Redirect(http.StatusSeeOther, "https://web-test.vercel.app/workplace/payment/success")
}

En el frontend, la llamada axios es de esta manera:

export const SetSubscription = async () => {
  try {
    return await axios({
      method: "GET",
      url: API_URL + `/workplaces/payment-test`,
      headers: {
        "Authorization": shared.getAuthorizationHeader()
      }
    });
  } catch (error) {
    return error
  }
}

En la consola de desarrollador, aparece el siguiente error:

Access to XMLHttpRequest at 'https://web-test.vercel.app/workplace/payment/success' (redirected from 'https://api.test.domain.tech/workplaces/payment-test') from origin 'https://web-test.vercel.app' has been blocked by CORS policy: Request header field authorization is not allowed by Access-Control-Allow-Headers in preflight response.
688030a.js:2

GET https://web-test.vercel.app/workplace/subscription/success net::ERR_FAILED

En la consola de desarrollador, aparece un error de red como este: imagen.

¿Qué punto me estoy perdiendo?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El error CORS indica que la solicitud que se realiza desde el frontend está siendo bloqueada por el servidor debido a las restricciones establecidas por el mismo. El error específicamente menciona que el campo de encabezado “Authorization” no está permitido según la política de Access-Control-Allow-Headers del servidor.

    Para resolver este problema, es necesario actualizar la política CORS en el servidor para permitir el campo de encabezado “Authorization”. En el código de Golang/Echo, esto puede hacerse añadiendo “Authorization” al encabezado Access-Control-Allow-Headers:

    header.Add("Access-Control-Allow-Headers", "Content-Type, Authorization")
    

    Asegúrese de añadir esta línea antes de enviar la respuesta.

    Una vez que haya actualizado la configuración del servidor, el error CORS debería resolverse y la solicitud debería poder continuar sin problemas.

Comments are closed.