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

269
Vistas
Función GET de Jquery que devuelve el resultado anterior

Me estoy encontrando con un problema bastante extraño. Cuando se carga la página web, ejecuto automáticamente una solicitud jQuery GET en un script PHP interno que esencialmente imprime una salida JSON desde una aplicación de back-end.

jQuery

 $.get(urls.validateSession, function(data){ console.log(data); //For debugging var response = JSON.parse(data); //Do more things with returned data });

PHP

 <?php include 'include/backend.php'; //Send POST request to backend application $response = sendPostRequest($urls->session->validate, json_encode($defaultRequest)); /* sendPostRequest Function Definition */ /* function sendPostRequest($url, $data){ $curl = curl_init($url); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json')); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($curl); curl_close($curl); return $response; } */ echo $response; ?>

Esto funciona como se esperaba en mi servidor xampp local e imprimirá una salida JSON en la consola similar a la siguiente:

 { "status":"SUCCESS", "time":"02-21-2022 02:14:03", etc... }

Aunque cuando ejecuto este mismo código en un servidor apache remoto, en lugar de jQuery ejecutando la solicitud GET cada vez que se carga la página web y escribiendo los datos recibidos en la consola, jQuery no ejecutará la solicitud GET nuevamente y escribirá los datos recibidos de la anterior Solicitud GET a la consola. Casi como si el resultado anterior de la solicitud GET se almacenara en caché y se usara nuevamente para la solicitud posterior.

Sé que jQuery no está ejecutando la solicitud GET cada vez que se vuelve a cargar la página porque el campo "tiempo" en la salida JSON siempre permanece igual. Además, no veo solicitudes posteriores que lleguen a la aplicación de back-end. Entonces, jQuery no se molesta en hacer una nueva solicitud GET para obtener nuevos datos, y solo usa el resultado anterior.

Aunque cuando fuerzo la actualización de la página web (Shift + F5), esto parece obligar a jQuery a ejecutar la solicitud GET nuevamente, y la nueva salida JSON esperada con una marca de tiempo actualizada se escribe en la consola.

¿Alguna idea de lo que podría estar pasando aquí?

SOLUCIÓN

Las solicitudes Ajax GET tienen el almacenamiento en caché habilitado de forma predeterminada. Agregar el siguiente código al comienzo de los archivos JS deshabilita el almacenamiento en caché para todas las siguientes solicitudes ajax.

 $.ajaxSetup({ cache: false });
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Creo que esta pregunta anterior podría ayudarlo a obtener el resultado deseado. El caché del método JQuery get() está, por defecto, establecido en true .

caché (predeterminado: verdadero, falso para dataType 'script' y 'jsonp')

Y parece que sus resultados se almacenan en caché, por eso no se molesta en ejecutar la función cada vez que se carga una página.

Puede ver más configuraciones de ajax aquí

El fragmento de @KevinB en la pregunta vinculada:

 $.get({ url: url, cache: false }).then(function(rdata){ console.log(rdata); });
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