/ / jquery “async = true” appel au service Web .net ne fonctionnant pas de manière asynchrone - c #, asp.net, jquery

jquery “async = true” appel du service Web .net ne fonctionnant pas de manière asynchrone

J'ai un .Service Web NET que j’ai besoin de lancer de manière asynchrone à partir de jQuery et de mettre à jour la grille en fonction du résultat obtenu du service. Mon problème ici est que, le hit de service est asynchrone seulement pour la première fois et que les requêtes suivantes sont synchronisées (même après avoir spécifié async = true dans l'appel ajax), comme indiqué ci-dessous

jQuery.ajax({
type: "POST",
url: url,
data: data,
contentType: "application/json; charset=utf-8",
dataType: "json",
async: true,
success: function(msg) {
var result = msg.d;
return callback(result);
},
error: $.callDotNetSM.onError
});

Ma méthode de service .NET est quelque chose comme ci-dessous.

[WebMethod(EnableSession = true)]
public static string GetData()
{
}

Alors, aidez-moi à appeler le service de manière asynchrone à chaque fois. Toute aide est grandement appréciée.

Réponses:

5 pour la réponse № 1

La page sur laquelle votre WebMethod est appelée doit avoir les éléments suivants dans la directive Page:

<%@ Page Async="true" EnableSessionState="False" %>

La raison en est que ASP.NET verrouille la session à chaque accès, empêchant ainsi son exécution asynchrone. Même si vous n'utilisez pas la session dans votre méthode Web, la page pense qu'elle l'utilise par défaut, sauf indication contraire de votre part.

Modifier:

Votre problème pourrait aussi être que vous avez EnableSession="true". Vous devrez peut-être simplement le définir sur false.