【问题标题】:How to abort called ajax method c# .net如何中止调用的ajax方法c#.net
【发布时间】:2019-05-12 12:07:57
【问题描述】:

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

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

有时有些方法需要很长时间,那时我想中止这个调用。如何中止此请求?

我从js调用这样的方法;

ajax.testMethod()

【问题讨论】:

  • 你的方法testMethod()里面有什么?你是用url、错误函数、成功函数等构建请求吗?
  • testMethod 里面有什么并不重要。我没有使用 url 构建请求,因为我只是注册并使用它。

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


【解决方案1】:

如果您让控制器操作返回一个任务,那么您可以将取消标记作为操作的参数。当 HTTP 请求中止时,会自动触发此取消令牌。在操作中,您可以随意处理令牌以取消长时间运行的操作。

【讨论】:

  • 我正在使用网络表单而不是 mvc,所以我该如何实施您的建议。其实我不确定你的情况。您能分享一个示例或文档链接吗?
  • 您的问题是否与此重复? stackoverflow.com/questions/26204378/…
  • 不,我的问题不一样。
【解决方案2】:

不确定它是否有效,但不是从 C# 端中止 ajax,为什么不从 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(){
   }
});

【讨论】:

  • 我没有像你写的那样调用 ajax 方法。我只是在 .cs 端使用“RegisterTypeForAjax”注册并从 js 中使用它。
猜你喜欢
  • 2018-11-08
  • 2021-05-29
  • 2011-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-17
  • 2023-03-30
相关资源
最近更新 更多