2011-06-23 121 views
0

如果我在web.config文件中添加一个HTTP模块是这样的:HTTP模块和Ajax

<httpModules> 
     <add name="TheName" type="MyModule"/> 
    </httpModules> 

将其解雇的代码,如果我写这篇文章:

public void Init(HttpApplication TheApp) 
    { 
     TheApp.BeginRequest += new EventHandler(MyCode); 
    } 

当我调用静态页面方法从jQuery的是这样的:

$.ajax({ 
    type: "POST", 
    url: "../Pages/AnyPage.aspx/AnyPageMethod", 
     ...... 

如果在一个Ajax请求进来,然后恳求那不是火mycode的有道请让我知道正确的做法可能看起来像什么。

谢谢。

回答

0

这是接收请求时触发代码的一种方法。但是它的低效率会在每次请求时触发无论如何。

如果您编写了一个可以过滤出特定资源请求的httphanlder,那么只有在您请求某些文件类型时才会触发它。

http://support.microsoft.com/kb/307985#2b

+0

嗯,我正在寻找火在每次请求,什么是错的这种做法? – frenchie

+0

如果这就是你想要做的事情,那没有什么。 :-)只是不知道你是否真的想用JavaScript来贬低它,或者你是否想等待JavaScript事件。 – Exitos

0

你举的例子是正确的,虽然的BeginRequest未必是最合适的。您可能希望查看可从HttpModule中挂钩的所有事件,然后决定哪个事件适合您的要求。

这里是events in ASP.NET 2.0链接: