Tengo una solicitud axios (vue):
.then(response => { history.pushState(null, null, response.request.responseURL); } URL http://localhost:30/shop . Con esta línea completo la URL. al final se verá así: http://localhost:30/shop?tags[]=5
Pero cuando voy a otra página ( http://localhost:30/shop/parts/2123 ) y luego hago clic en el back button . Entonces no veo la página, sino la respuesta de la solicitud (solo texto).
¿Cómo puedo resolver este problema?
upd: con FF funcionando bien. Solo cuando se usa Google Chrome.
Lo que hace history.pushState es cambiar el valor de la URL en la barra de búsqueda y enviar una nueva URL al historial del navegador; no cambia nada en el DOM. El navegador no toma "capturas de pantalla" del estado de su página actual, por lo que cuando regresa solo cambia la URL en la barra de direcciones y el historial, pero no cambia la interfaz de usuario.
Según su código y publicación, creo que quería redirigir al usuario, lo cual se hace fácilmente con:
window.location.href = response.request.responseURL; Según su comentario, puede usar history.replaceState en lugar de pushState , que no agregará cambios al historial, por lo que no romperá el botón Atrás:
history.replaceState(null, null, response.request.responseURL);