我收到此错误
Element CUSTOMERID is undefined in CLIENT.
D:\Inetpub\wwwsitecom\wwwroot\rders.cfm:296
在以下面代码开头的页面上:
<cfif NOT CreateObject("component","User.User").IsLoggedIn()>
<script type="text/javascript">
window.location.href='/index.cfm';
</script>
<cfabort>
</cfif>
<cfif NOT IsDefined("client.customerid")>
<cfparam name="client.customerid" default="0">
<script type="text/javascript">
alert("We're sorry.");
window.location.href="/logout.cfm";
</script>
<cfabort>
</cfif>
和第296行
<cfinvoke component="Account" method="getAccessInfo" returnvariable="getInfo">
<cfinvokeargument name="customerid" value="#client.CustomerID#">
</cfinvoke>
IsLoggedIn函数有这段代码
<cfif NOT StructKeyExists(client,"customerid")>
<cfset strIsLoggedIn = 0>
</cfif>
如果ColdFusion线性处理脚本,如何在不处理页面的第一部分的情况下如何获取第296行的未定义的client.customerid?
如果ColdFusion没有线性处理脚本,我该如何防止此错误?
答案 0 :(得分:0)
确保在cfide中正确设置了客户端变量,并检查它们是否已在Application.cfc文件中启用。
答案 1 :(得分:0)
首先,我会检查您是否在名为<cfoutput>
的某处(可能在<cfloop>
或client
标记的隐式作用域中)创建变量。由于CF是一种后期绑定语言,因此可以更改语义,对client.CustomerID
的引用将在您的本地client
变量中查找,而不是Client
范围。
其次,如果你想进行重定向,请 ,使用<cflocation>
而不是做这个疯狂的JavaScript重定向。请记住,JavaScript是在客户端执行的,并且浏览器禁用JavaScript是完全可能的(甚至不常见)。 <cflocation>
会导致发送HTTP 3xx响应,无论是否启用了JavaScript,它都可以在任何实现HTTP的浏览器中正常运行。它也更加安全,因为在重定向之前,页面的某些部分不可能被刷新到客户端。