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

80
Vistas
¿Cómo puedo agregar un encabezado adicional a la instancia global de Axios en una solicitud personalizada?

Este es mi Axios global

 import axios from 'axios'; import { storage } from 'containers/login/utils/local-storage'; const token = storage.getToken(); const axiosInstance = axios.create({ baseURL: process.env.REACT_APP_API_URL, }); axiosInstance.interceptors.response.use((response) => { response.config.headers = { Authorization: `Bearer ${token}`, }; return response; }, (error) => Promise.reject(error)); axiosInstance.interceptors.request.use((request) => { request.headers = { Authorization: `Bearer ${token}`, }; return request; }, (error) => Promise.reject(error)); export default axiosInstance;

En esta solicitud, necesito agregar un nuevo encabezado: invoiceLimit = `${-invoiceLimit}`

 export const updateInvoiceLimit = async ( invoiceLimit: string, ) : Promise<ReturnDataType> => { let result: ReturnDataType = {} as ReturnDataType; try { axios.defaults.headers.common.invoiceLimit = `${-invoiceLimit}`; result = await axios.put(`${CREDITS_URL.CREDITS}/invoice/limit`); return result; } catch (error) { SnackBarUtils.error(`${(error as Error).message}. ${result.data.message}`); } return result; };

Cuando uso esto: axios.defaults.headers.common.invoiceLimit = `${-invoiceLimit}`;

El encabezado se agrega a los valores predeterminados de Axios, pero luego, cuando llamo a axios.put, este encabezado personalizado desaparece y deja solo el encabezado global de los interceptores.

Sé que no es la mejor práctica, pero su API de cliente y no quiero crear otra instancia de Axios sino usar una instancia global.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Creo que el problema está aquí:

 axiosInstance.interceptors.request.use((request) => { request.headers = { Authorization: `Bearer ${token}`, }; return request; }, (error) => Promise.reject(error));

Está anulando todos los encabezados de solicitud con solo este:

 { Authorization: `Bearer ${token}` }

Así que intente distribuir encabezados antes de agregar uno nuevo como este:

 axiosInstance.interceptors.request.use((request) => { request.headers = { ...request.headers, Authorization: `Bearer ${token}`, }; return request; }, (error) => Promise.reject(error));

¿Esto resolvió el problema?

about 4 years ago · Juan Pablo Isaza Denunciar

0

Pensé que podría reutilizar la instancia inicial axiosInstance y los encabezados se fusionarán cuando lo haga:

 await axios.put(`${CREDITS_URL.CREDITS}/invoice/limit`,{}, { headers: { invoiceLimit: `${-invoiceLimit}` } })
about 4 years ago · Juan Pablo Isaza 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