我面临着奇怪的问题。我有一个使用twilio调用的应用程序。我正在使用会话变量。我的J2EE会话变量在CF管理员中启用。
问题在于,当我设置任何会话值时,它也会在浏览器上设置,该浏览器会打开到另一个系统上。我已经检查过他们的URLTOKEN在两个浏览器上保持不变。
我的application.cfc
<cfcomponent output="false" hint="I define the application settings and event handlers.">
<cfset this.name = "applicationName" />
<cfset this.applicationtimeout=createTimespan(0,6,0,0) />
<cfset this.sessionManagement="yes" />
<cfset this.sessionTimeout="#createtimespan(0,1,0,0)#" />
</cfcomponent>
带表格标签的Index.cfm
<cfset SESSION.abc=0>
<form id="formID">
<div class="panel-body">
<p><strong>New Client</strong></p>
<div class="well well-sm">
<span id="successMessage"></span>
<input type="text" id="name" class="form-control" name="name" placeholder="Name">
</div>
<div class="row" id="connect-agent-row">
<div class="col-md-12 text-center">
<a href="javascript:void(0)" onclick="$('#formID').submit();" class="btn btn-lg btn-primary">
Connect
</a>
</div>
</div>
</div>
</form>
然后将ajax发送到cfc的函数。从数据库中获取它们的价值。
这是cfc代码。
<cfcomponent displayname="abcCFC" hint="abcCFC">
<cffunction name="setNewSession" returntype="any" returnformat="plain" access="remote">
<cfargument name="name" type="string" />
<cfset var getResults1 = ''>
<cfquery name="getResults1" datasource="datasourceName">
INSERT INTO tblname(name) VALUES
(<cfqueryparam cfsqltype="cf_sql_varchar" value="#arguments.name#" />);
Select ident_current('tblname') as ID;
</cfquery>
<cfset var SESSION.abc = #getResults1.ID#>
</cffunction>
</cfcomponent>
以下是正在处理表单提交的ajax代码。
$.ajax({
url: "pathtocfc?method=setNewSession",
type: "post",
data: $("form#formID").serialize(),
success: function(d) {
$('#successMessage').html('');
}
});
我创建了一个测试文件并转储了在ajax请求后显示正确值的会话。另外我只在服务器上面对这个问题有coldfusion 2016.
我还在我的本地安装了coldfusion2016,并在firfox上遇到同样的问题,但当我在本地设置this.setClientCookies =“false”时。然后我的本地修复了这个问题。但是这种解决方法不适用于服务器。
我需要知道为什么我面临这个问题,他们的解决方法是什么?