J'ai déjà fait du jQuery par le passé, mais je suis complètement coincé là-dessus. Je connais les avantages et les inconvénients de l'utilisation d'appels ajax synchrones, mais ici, il sera nécessaire.
La page distante est chargée (contrôlée par firebug), mais aucun retour n'est affiché.
Que dois-je faire différemment pour que ma fonction revienne correctement?
function getRemote() {
var remote;
$.ajax({
type: "GET",
url: remote_url,
async: false,
success : function(data) {
remote = data;
}
});
return remote;
}
Lorsque vous faites une demande synchrone, cela devrait être
function getRemote() {
return $.ajax({
type: "GET",
url: remote_url,
async: false
}).responseText;
}
Exemple - http://api.jquery.com/jQuery.ajax/#example-
VEUILLEZ NOTER: Définir la propriété async sur false est obsolète et dans le processus d'être enlevé ( lien ). De nombreux navigateurs, y compris Firefox et Chrome, ont déjà commencé à imprimer un avertissement dans la console si vous utilisez ceci:
Chrome:
Synchronous XMLHttpRequest sur le thread principal est obsolète en raison de ses effets néfastes sur l'expérience de l'utilisateur final. Pour plus d'aide, consultez https://xhr.spec.whatwg.org/ .
Firefox:
Synchronous XMLHttpRequest sur le thread principal est obsolète en raison de ses effets néfastes sur l'expérience de l'utilisateur final. Pour plus d'aide http://xhr.spec.whatwg.org/
Vous utilisez la fonction ajax de manière incorrecte. Comme il est synchrone, les données en ligne seront renvoyées comme suit:
var remote = $.ajax({
type: "GET",
url: remote_url,
async: false
}).responseText;
quelle distance est cette url? est-ce du même domaine? le code a l'air bien
essaye ça
$.ajaxSetup({async:false});
$.get(remote_url, function(data) { remote = data; });
// or
remote = $.get(remote_url).responseText;
function getRemote() {
return $.ajax({
type: "GET",
url: remote_url,
async: false,
success: function (result) {
/* if result is a JSon object */
if (result.valid)
return true;
else
return false;
}
});
}