/ / jquery “async = true” виклик веб-служби .net не працює асинхронно - c #, asp.net, jquery

jquery "async = true" дзвінок на .net веб-сервіс не працює асинхронно - c #, asp.net, jquery

Я маю .NET веб-сервіс, який мені потрібно асинхронно вдарити з 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.