我们使用 GA 进行跟踪,部分跟踪涉及将 __utmz cookie 值存储在我们的数据库中。我无法理解为什么 CF 10 无法解析 __utmz cookie。
CF10 没有解析或正确检索 __utmz cookie 的值,或者除了 CFGLOBALS 之外,几乎所有包含“等号 (=)”的 cookie 值。
这是问题的屏幕截图(使用 COOKIE 范围的 CFDUMP)-
它应该是什么样子——
它的样子——
服务器配置:CF10、IIS 7.5、Win 2k8
我们使用 GA 进行跟踪,部分跟踪涉及将 __utmz cookie 值存储在我们的数据库中。我无法理解为什么 CF 10 无法解析 __utmz cookie。
CF10 没有解析或正确检索 __utmz cookie 的值,或者除了 CFGLOBALS 之外,几乎所有包含“等号 (=)”的 cookie 值。
这是问题的屏幕截图(使用 COOKIE 范围的 CFDUMP)-
它应该是什么样子——
它的样子——
服务器配置:CF10、IIS 7.5、Win 2k8
好的!我找到了缓解这个问题的方法。通过使用 GetHttpRequestData() 方法。
<cfscript>
_cookie = GetHttpRequestData().headers.cookie;
</cfscript>
这将返回一个 ; cookie 值的分隔列表。我使用 regEx 来选择我需要的 __utmz 值。
我刚刚遇到了这个问题。一些在 CF8 中运行的代码在 CF10 中停止运行。我创建了这个函数来获取原始 cookie 值:
<cffunction name="GetRawCookie" output="false" returntype="string">
<cfargument name="cookieName" type="string" required="true">
<cfset local.cookies = GetHttpRequestData().headers.cookie>
<cfset local.cookieValue = "">
<cfset local.match = reFindNoCase("(?:^|;)\s*" & arguments.cookieName & "=([^;]+)", local.cookies, 1, true)>
<cfif local.match.pos[1] gt 0>
<cfset local.cookieValue = mid(local.cookies, local.match.pos[2], local.match.len[2])>
</cfif>
<cfreturn local.cookieValue>
</cffunction>