He hecho algo de jQuery en el pasado, pero estoy completamente atascado en esto. Conozco los pros y los contras del uso de llamadas síncronas ajax, pero aquí será necesario.
La página remota se carga (controlada con firebug), pero no se muestra ningún retorno.
¿Qué debo hacer diferente para que mi función regrese correctamente?
function getRemote() {
var remote;
$.ajax({
type: "GET",
url: remote_url,
async: false,
success : function(data) {
remote = data;
}
});
return remote;
}
ajax
jquery
synchronous
Industrial
fuente
fuente
seems that the statement "[synchronous] will be required" indicates a lack of understanding of JavaScript engines, thus a poorly architected app.
O una muy buena comprensión: si desea hacer una llamada AJAXonbeforeunload
, el uso de una solicitud sincrónica es realmente la forma recomendada (ya que la ventana del navegador desaparecería antes de que la solicitud regresara). De alguna manera, él dice claramente: 'Sé acerca de los pros y los contras de usar llamadas síncronas ajax' ... ¿Tal vez solo le creas?Respuestas:
Como está haciendo una solicitud sincrónica, eso debería ser
Ejemplo: http://api.jquery.com/jQuery.ajax/#example-3
TENGA EN CUENTA: establecer la propiedad asíncrona en falso está en desuso y en proceso de eliminación ( enlace ). Muchos navegadores, incluidos Firefox y Chrome, ya han comenzado a imprimir una advertencia en la consola si usa esto:
Cromo:
Firefox
fuente
responseText
siempre devuelve una cadena. Si está esperando JSON, termine$.ajax
conJSON.parse
.<i>
y<b>
. Mi recomendación: sigue usando estas funciones para que no desaparezcan.Estás utilizando la función ajax de forma incorrecta. Como es síncrono, devolverá los datos en línea de la siguiente manera:
fuente
¿Qué tan remota es esa url? ¿Es del mismo dominio? el código se ve bien
prueba esto
fuente
remote_url
se define correctamente y la llamada AJAX se realiza correctamente como se menciona (controlado con firebug). Simplemente no hay vuelta!fuente