est-il possible d'envoyer un appel JQuery.ajax ou un équivalent sans aucune réponse? Je veux déclencher quelque chose sur le serveur car je quitte la page avec la commande onbeforeRunload, mais ce n'est pas quelque chose dont j'ai besoin pour rétablir le client, alors je souhaite simplement envoyer la commande et ne pas attendre une réponse. P>
est-ce possible? P>
4 Réponses :
Vous pouvez ignorer la réponse si vous souhaitez simplement ajouter un succès code> rappel. p>
Assurez-vous de quitter le Async code> Option out pour le laisser sous
true code> Il s'agit donc d'une demande asynchrone et du navigateur n'attends pas une réponse.
Si vous essayez de retourner une réponse dès que possible, je pense que c'est plus d'une décision d'architecture de serveur. Vous pouvez décharger le travail réel que la demande implique un courtier ou quelque chose afin de pouvoir revenir à l'utilisateur dès que possible? Je ne pense pas que l'envoi d'un message unique est réalisable p>
En supposant que vous utilisez quelque chose comme ceci: (emprunté à partir de http://api.jquery.com/jquery.ajax/ code> et édité) , vous pouvez jeter la réponse. P> p>
Vous pouvez utiliser l'API Navigator SendBeacon mentionné référencé dans Cette réponse de la pile Réponse ou directement liée à ici . P>
Dans la description sur le site, il envoie asynchroneusement certaines données et vérifie simplement s'il a été capable de faire la queue des données pour l'envoi ou non. Le gestionnaire de déchargement ne devrait pas ignorer la demande comme si elle pouvait faire avec d'autres XMLHTTTPQUESTS XMLHTTTPEQUES asynchrones. P>
NAVIGATOR.SENDBEAACCON (URL, données) - La méthode SendBeAcon () renvoie true si l'agent utilisateur est capable de faire la queue de la ligne de transfert réussie, sinon il renvoie false. p> blockQuote>
... p>
S'assurer que les données ont été envoyées lors du déchargement d'un document, c'est quelque chose qui a été traditionnellement difficile pour les développeurs, car les agents d'utilisateur ignorent généralement les XMLHTTPQUESTS asynchrones fabriqués dans un gestionnaire de déchargement. P> blockQuote>
Ignorez simplement les événements de changement d'état.
Ouais pourquoi pas. Il suffit de ne pas inclure aucun
succès code> (bien que cela puisse inclure le gestionnaire
défaillance code> pour savoir s'il est allé à droite ou non). Envoyez simplement les données requises et laissez le script côté serveur faire son devoir.
Le protocole normal pour l'HTTP sous-jacent est qu'une réponse est toujours renvoyée - vous pouvez ignorer la réponse, cependant.