web-dev-qa-db-fra.com

Synchronous XMLHttpRequest sur le thread principal est obsolète ... Essayé de nombreuses solutions différentes

Je sais que cette question a été postée à maintes reprises ici, mais j’ai essayé toutes les solutions que je pouvais trouver sur le débordement de pile et aucune d’entre elles n’avait fonctionné. à l'intérieur d'une div. Aussi simple que:

function loadHome(){
$('#container').html('<div class="loader"></div>');
$.ajax({
    type: "GET",
    url: "home.php",
        success: function(msg){
            $("#container").html(msg);
        }
});
}

Et sur le journal de la console je reçois 

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 http://xhr.spec.whatwg.org/

Et une partie de mon javascript sur la page d'accueil ne fonctionnera pas à moins de recharger la page. Cette page est déjà chargée par défaut de home.php dans la div, mais je veux qu’elle charge d’autres pages, puis lorsque je clique sur «home», elle se charge normalement, ce qui ne se produit pas à cause de cette erreur. J'ai déjà essayé d'utiliser "async: true", cela n'a pas fonctionné. Je ne sais pas quoi faire.

7
Marciel Fonseca

Vous devez utiliser jquery local puis de cdn et aussi

Pour éviter cet avertissement, n'utilisez pas:

async: false

dans l’un de vos appels $.ajax(). C’est la seule fonctionnalité de XMLHttpRequest qui est obsolète.

La valeur par défaut est async: true. Par conséquent, si vous n'utilisez jamais cette option, votre code devrait être sûr si la fonctionnalité est réellement supprimée (ce ne sera probablement pas le cas - il peut être supprimé des normes, mais je parie que les navigateurs continuera à le soutenir pendant de nombreuses années).

Référence

5
Parth Trivedi

Je remarque également le même problème lors de l'utilisation de la fonction .load ().

La méthode ne semble pas être déconseillée par jQuery, mais elle génère également une alerte Synchronous XMLHttpRequest.

Préférez les méthodes $ .get (), $ .post () ou $ .ajax ().

1
Julien