Как прервать вызов метода ajax c # .net - PullRequest
0 голосов
/ 11 декабря 2018

У меня есть класс ajax.cs, и я вызываю методы со стороны javascript.Поэтому для этого я зарегистрировал его при загрузке страницы default.aspx следующим образом.

Ajax.Utility.RegisterTypeForAjax(typeof(ajax));

Иногда некоторые методы занимают много времени, в то время я хочу прервать этот вызов.Как я могу прервать этот запрос?

Я вызываю такой метод из js;

ajax.testMethod()

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

Не уверен, что это работает, но вместо того, чтобы прервать ajax со стороны C #, почему бы вам не отменить его со стороны js?в вашей конфигурации ajax вы можете добавить параметр тайм-аута, который, когда это происходит, вызывает функцию .error (), которую вы можете определить, или оставить ее пустой, если вы просто хотите, чтобы она перестала выполняться.

Для js:

var ajax = new XMLHttpRequest();
ajax.post('your url');
ajax.timeout(10000); //or any time in milliseconds to set a timeout.
ajax.ontimeout= function(){ }//optional, just if you want a callback when ajax times out

Для jQuery:

$.ajax({
   url:'yoururl',
   timeout: 10000,
   error: function(){
   }
});
0 голосов
/ 11 декабря 2018

Если вы заставляете действие вашего контроллера возвращать Задачу, то вы можете иметь токен отмены в качестве параметра к действию.И этот токен отмены автоматически срабатывает при отмене HTTP-запроса.А в действии вы можете обработать токен, если хотите отменить длительную операцию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...