Имам .NET webservice, която трябва да ударя асинхронно от jQuery и да актуализирам мрежата въз основа на резултата, получен от услугата. Моят проблем тук е, че услугата хит е асинхронен само за първи път и последващите заявки са синхронизирани (дори след като посочите async = true в ajax повикване), както е показано по-долу
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
});
Моят .NET сервизен метод е нещо като по-долу.
[WebMethod(EnableSession = true)]
public static string GetData()
{
}
Така че, моля, помогнете ми да се обадя на услугата асинхронно през цялото време. Всяка помощ е високо оценена.
Отговори:
5 за отговор № 1Страницата, на която се извиква WebMethod, трябва да има следното в Директивата за страницата:
<%@ Page Async="true" EnableSessionState="False" %>
Причината за това е, че ASP.NET заключва сесията всеки път, когато е достъпна, така че да не може да работи асинхронно. Дори и да не използвате сесията във вашия WebMethod, страницата все още смята, че я използва по подразбиране, освен ако не го кажете по друг начин.
Редактиране:
Вашият проблем също може да бъде, че имате EnableSession="true"
, Може просто да го зададете на false.