Session 在coldfusion中,哪些作用域中的变量可以传递给和iframe页面?

Session 在coldfusion中,哪些作用域中的变量可以传递给和iframe页面?,session,iframe,variables,coldfusion,scope,Session,Iframe,Variables,Coldfusion,Scope,我写了2页来测试这个问题,但是服务器抱怨错误。我不知道为什么,谁都能解释?非常感谢 这是1.cfm 页面标题 a=“aaaaaaaaaaaaa”; b=“bbbbbbbbb”; request.r1=“rrr 111111111”; request.r2=“rrrrrrrr2222222”; session.s1=“SSS 11111111”; session.s2=“SSS 2222222”; 变量 要求 一场 这是2.cfm 2.cfm 变量 要求 一场 在运行这些测试的目录中是否有

我写了2页来测试这个问题,但是服务器抱怨错误。我不知道为什么,谁都能解释?非常感谢

这是1.cfm


页面标题
a=“aaaaaaaaaaaaa”;
b=“bbbbbbbbb”;
request.r1=“rrr 111111111”;
request.r2=“rrrrrrrr2222222”;
session.s1=“SSS 11111111”;
session.s2=“SSS 2222222”;

变量 要求 一场
这是2.cfm


2.cfm
变量
要求
一场

在运行这些测试的目录中是否有Application.cfm

如果将以下行添加到名为Application.cfm的文件和目录的根目录中,它应该可以工作

<cfapplication name="test_app" sessionmanagement="true">


我测试了您的两个文件,但没有应用程序。cfm它坏了,有了它,它工作正常。

您似乎误解了网页请求的基本概念

iframe虽然显示为呈现页面的一部分,但实际上是它自己的请求,完全独立于原始页面请求

会话变量将在它们两个之间共享(假设您在Application.cfm/Application.cfc中启用了会话),尽管通过从父页面(1.cfm)设置变量并从iframe(2.cfm)中的子页面读取变量不太可能进入竞争状态,但这并不是一个好主意(最佳实践)

父页面(1.cfm)中设置的请求变量对于iframe(2.cfm)中的页面不可用,因为它是一个单独的请求

与请求范围对每个请求都是私有的(但对所有模板和对象共享)一样,“变量”范围对每个模板都是私有的(但在使用cfinclude时在它们之间共享)

虽然您的iframe将有权访问自己的请求变量范围,但它们与原始页面(1.cfm)的范围不同


这是编程的基本概念,也是ColdFusion的基本概念。如果你发现很难掌握,你可以考虑拿起一个COLDFLASH Web应用程序构建工具包,它可以很快地把你从完全新手转变为初学者中间层。

< P>我认为伊恩在这里使用了会话变量的观察是正确的。我们需要启用sessionmanagement,但是我认为建议使用Application.cfm来实现这一点有点不合时宜

如果使用CFMX7之后的CF版本,建议通过application.cfc管理应用程序框架,与Ian代码等效的方法是:

<cfcomponent>

    <cfset this.name = "test_app">
    <cfset this.sessionManagement = true>

</cfcomponent>

这里已经提供了答案,所以大家都很好,但是将来当您遇到错误时,提供实际的错误消息比说“有错误”更有帮助。有时,问题并不像这次那么明显——这很难再猜测——所以最好尽可能多地提供相关信息。干杯
<cfapplication name="test_app" sessionmanagement="true">
<cfcomponent>

    <cfset this.name = "test_app">
    <cfset this.sessionManagement = true>

</cfcomponent>