Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

271
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!