Eu fiz jQuery no passado, mas estou completamente preso a isso. Conheço os prós e os contras do uso de chamadas síncronas ajax, mas aqui será necessário.
A página remota é carregada (controlada com o firebug), mas nenhum retorno é mostrado.
O que devo fazer diferente para que minha função retorne corretamente?
function getRemote() {
var remote;
$.ajax({
type: "GET",
url: remote_url,
async: false,
success : function(data) {
remote = data;
}
});
return remote;
}
ajax
jquery
synchronous
Industrial
fonte
fonte
seems that the statement "[synchronous] will be required" indicates a lack of understanding of JavaScript engines, thus a poorly architected app.
Ou um entendimento muito bom: se você deseja fazer uma chamada AJAXonbeforeunload
, usar uma solicitação síncrona é realmente a maneira recomendada (já que a janela do navegador desapareceria antes que a solicitação retornasse). De qualquer forma, ele diz claramente: "Eu sei sobre os prós e os contras do uso de chamadas síncronas ajax" ... Talvez apenas acredite nele?Respostas:
Como você está fazendo uma solicitação síncrona, isso deve ser
Exemplo - http://api.jquery.com/jQuery.ajax/#example-3
OBSERVAÇÃO: A configuração da propriedade assíncrona como false está obsoleta e está sendo removida ( link ). Muitos navegadores, incluindo Firefox e Chrome, já começaram a imprimir um aviso no console se você usar este:
Cromada:
Raposa de fogo:
fonte
responseText
sempre retorna uma string. Se você está esperando JSON, encerre$.ajax
comJSON.parse
.<i>
e<b>
. Minha recomendação: continue usando esses recursos para que eles não desapareçam.Você está usando a função ajax incorretamente. Como é síncrono, os dados serão retornados da seguinte maneira:
fonte
quão remoto é esse URL? é do mesmo domínio? o código parece bem
tente isso
fonte
remote_url
é definido corretamente e a chamada AJAX é realizada corretamente conforme mencionado (controlado com o firebug). Apenas sem retorno!fonte