2

我面临着奇怪的问题。我有一个使用 twilio 调用的应用程序。我在上面使用会话变量。我的 J2EE 会话变量在 CF Administrator 中启用。

问题是,当我设置任何会话值时,它也会在打开到另一个系统的浏览器上设置。我检查了他们的 URLTOKEN 在两个浏览器上都保持不变。

我的应用程序.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”时。然后这个问题在我的本地得到了解决。但是这种解决方法不适用于服务器。

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

4

0 回答 0