Estoy tratando de llamar a una función que contiene el código jQuery. Quiero que esta función devuelva los resultados de la declaración jQuery. No está funcionando, y estoy tratando de descubrir por qué.
function showGetResult (name) {
var scriptURL = "somefile.php?name=" + name;
return $.get(scriptURL, {}, function(data) { return data; });
}
alert (showGetResult("John"));
Las pantallas de alerta "[object XMLHttpRequest]
." Sin embargo, si ejecuto la instrucción jQuery por sí mismo, fuera de una función, funciona bien ->$.get(scriptURL, {}, function(data) { alert(data); })
Me gustaría poder volver a utilizar este código al ponerlo dentro de una función que devuelve el $.get
datos. ¿Qué error fundamental estoy haciendo aquí?
Gracias por el desglose completo. La combinación de cambiar a sincrónico y usar una variable en el alcance externo para pasar datos, ha resuelto mi problema. – Kai
Eso está bien, pero tenga en cuenta que al cambiar a sincrónico, puede causar que el navegador se bloquee mientras espera la respuesta. Probablemente sea un error, a menos que sepa que su usuario siempre estará en una conexión rápida y su servidor nunca se inundará.También es contrario a lo que AJAX se trata: está destinado a hacer que las aplicaciones web sean más receptivas, pero este cambio podría hacer que el suyo sea mucho menos receptivo. –
Estoy de acuerdo con @JacobM en que es mejor usar asincrónico si es posible y ocuparme de tus acciones en la devolución de llamada. – tvanfosson