如何中止称为Ajax方法的C#.net

时间:2018-12-11 13:30:49

标签: javascript c# asp.net .net ajax

我有一个ajax.cs类,正在从javascript端调用方法。因此,为此,我在default.aspx页面加载中注册了它。

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

有时某些方法花费很长时间,当时我想中止此调用。如何中止该请求?

我从js调用这样的方法;

ajax.testMethod()

2 个答案:

答案 0 :(得分:0)

如果使控制器动作返回任务,则可以将取消令牌作为动作的参数。当HTTP请求中止时,此取消令牌会自动触发。并且在操作中,您可以处理令牌,但是您想取消长时间运行的操作。

答案 1 :(得分:0)

不确定它是否有效,而是为什么不从JS端取消它而不是从C#端放弃ajax?在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(){
   }
});