Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

215
Visualizações
Encabezado de Axios no actualizado. El usuario necesita recargar manualmente la página en React

Estoy tratando de redirigir a la página de inicio después de iniciar sesión, pero antes quiero actualizar el token JWT en el encabezado.

iniciar sesión.tsx

 ... const handleSubmit = (event: React.FormEvent<HTMLFormElement>) => { event.preventDefault(); const data = new FormData(event.currentTarget); axiosInstance .post('token/', { username: data.get('username'), password: data.get('password'), }) .then((res) => { localStorage.setItem('access_token', res.data.access) localStorage.setItem('refresh_token', res.data.refresh) axiosInstance.defaults.headers.common['Authorization'] = 'JWT ' + localStorage.getItem('access_token') navigate('/', { replace: true }) }) } ...

En la página de inicio, apenas ingresa, hace una solicitud POST (usando el encabezado establecido en Axios)

casa.tsx

 ... const updateData = () => { return axiosInstance.post(`words/update/`, { 'timezone': Intl.DateTimeFormat().resolvedOptions().timeZone }) } useEffect(() => { updateData() }, []) ...

El problema aquí es que la solicitud POST envía el encabezado con el antiguo token JTW (no el actualizado). Solo después de actualizar la página, usa el encabezado actualizado.

Por cierto, tal vez esta información sea relevante. Así es como se ve mi App.tsx:

Aplicación.tsx

 import { BrowserRouter as Router, Routes, Route } from "react-router-dom"; import AddWord from "./components/addWord"; import './App.css'; import Home from "./components/home"; import SignIn from "./components/signIn"; import SignUp from "./components/signUp"; function App() { return ( <div className="container"> <Router> <Routes> <Route path="/" element={<Home />} /> <Route path="/add_word" element={<AddWord />} /> <Route path="/login" element={<SignIn />} /> <Route path="/register" element={<SignUp />} /> </Routes> </Router> </div> ); } export default App;
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Le sugiero que pueda usar Redux para almacenar su token en la página de inicio de sesión tan pronto como navegue a la página de inicio, obtenga el token del estado redux y aplíquelo al método.

about 4 years ago · Juan Pablo Isaza Relatório

0

¡Finalmente funcionó! Aquí está mi solución:

 navigate('/', { replace: true }) window.location.reload()

Escribe "ventana.ubicación.recargar()" después de navegar

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda