coldfusion onrequestend.cfm

use*_*820 2 coldfusion

有没有办法让onrequestend.cfm电话有条件.即如果我通过ajax调用模板,我不希望它onrequestend.cfm应该在ajax请求上执行.

在我的情况下,这是生成一些标题信息,如元标记等.

Ada*_*tle 5

你有几个选择:

  • 如Daniel推荐的那样,在包含您要连接的AJAX服务的目录中放置一个空白onRequestEnd.cfm.
  • 切换到Application.cfc和onRequestEnd()事件而不是onRequestEnd.cfm; 在你的onRequestStart()事件方法中,告诉ColdFusion不要为onRequestEnd事件做任何事情.

既然你没有指定,我会猜测并说你的AJAX请求使用CFC,如下所示:

/foo/bar.cfc?method=getSomething&param=value
Run Code Online (Sandbox Code Playgroud)

在这种情况下,您可以轻松识别路由到CFC的所有请求,如下所示:

function onRequestStart(targetPath){
    if (listLast(arguments.targetPath, ".") eq "cfc"){
        structDelete(this, "onRequestEnd");
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,该功能仅在当前请求中被删除,因此您不必担心它不适用于将来的请求.这将是.