我在不同的系统上获得相同的urltoken和sessionid - COLDFUSION 2016

时间:2017-04-25 14:38:08

标签: session coldfusion coldfusion-2016

我面临着奇怪的问题。我有一个使用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”时。然后我的本地修复了这个问题。但是这种解决方法不适用于服务器。

我需要知道为什么我面临这个问题,他们的解决方法是什么?

0 个答案:

没有答案