在AJAX调用控制器方法期间,IHttpModule EndRequest不会触发

时间:2016-07-19 05:14:51

标签: javascript c# jquery asp.net ihttpmodule

我试图解决为什么在对控制器GET方法执行javascript AJAX调用时,我注册的IHttpModule不会触发其事件,尤其是EndRequest方法。当第一次有对页面的标准GET请求时,此事件会正确触发,但不是在我通过JQuery AJAX调用执行此操作时。

有人可以提供任何见解吗?

我的javascript如下所示:

 $.ajax({
        type: 'GET',
        dataType: "json",
        url: /controller/action,
        success: function (data) {
                //do stuff
            }
        },
        error: function () {

        }
    });

我的控制器继承自System.Web.Mvc.Controller。

在我的配置中,我已经注册了模块:

<system.webServer>

  <modules runAllManagedModulesForAllRequests="true" >
    <add name="MyWebModule" type="MyWebModule"/>
  </modules>
....
 <httpModules>
    <add name="MyWebModule" type="MyWebModule"/>
  </httpModules>
 <system.web>

1 个答案:

答案 0 :(得分:0)

好的,这有点傻。

我在请求中有一个等待请求正确处理的while循环。

当然这意味着AJAX GET请求方法实际上从未结束,因此没有触发EndRquest事件。

一旦我删除了这个等待循环就会被解雇。

卫生署!

我会在这里回答这个问题,万一其他人正在做同样愚蠢的事情。