ColdFusion 9中的Cflocation bug / new feature - URL追加两次

时间:2012-02-10 16:40:01

标签: coldfusion coldfusion-9

当用户登录并重定向到安全页面时,该URL会像列表一样被追加两次。这反过来导致404。

(例如:http://uwf.edu/something.cfm,http://uwf.edu/something.cfm

目前,该网站有一个自定义登录标记,我无法编辑,因为我无法控制它。 (这只是一个自定义的cf标签,允许人们在大学登录。)

我必须在此标记之后执行其他处理,以验证他们是否有资格在此特定网站上登录。验证完成后,会将其重新定向到另一个带有cflocation的页面。

    <custom login tag>

    <cfinvoke component="#application.path#cfc/security" method = "constructSession" returnvariable = "status">
     .. params excluded..
    </cfinvoke>

    <cfif status eq 1>
    <cflocation url="#someurl_invalid#" addtoken="no" />
    <cfelse>
    <cflocation url="#someurl#" addtoken="no" />
    </cfif>

自定义登录标记已刷新当前页面,但我显然不希望这样,因此使用上述方法重定向。这在ColdFusion 8中有效。

我读过这篇文章:http://www.bennadel.com/blog/2050-Changes-In-CFLocation-OnRequestEnd-Behavior-In-ColdFusion-9-s-Application-cfc.htm

这篇文章给了我一些关于发生了什么的见解......但我不确定如何解决这个问题。 有没有人有任何解决方案?

1 个答案:

答案 0 :(得分:0)

由于您无法控制自定义标记,因此您必须解决此问题而不是修复它。

我建议更改代码:

<cfif status eq 1>
<cflocation url="#ListFirst(someurl_invalid)#" addtoken="no" />
<cfelse>
<cflocation url="#ListFirst(someurl)#" addtoken="no" />
</cfif>

它不漂亮,但无论URL是否为列表都可以使用。