我们使用GA进行跟踪,其中一部分跟踪涉及将__utmz cookie值存储在我们的DB中。我不理解为什么CF 10无法解析__utmz cookie,同时也无法解析包含等号(=)的任何cookie值,除了CFGLOBALS之外。
这是问题的截图(使用COOKIE范围的CFDUMP)-
应该像这样 -
看起来像这样 -
服务器配置:CF10,IIS 7.5,Win 2k8
这是问题的截图(使用COOKIE范围的CFDUMP)-
应该像这样 -
![Proper Google Analytic cookie read](https://istack.dev59.com/lSI0w.webp)
![Improper Google Analytic cookie read](https://istack.dev59.com/maCCp.webp)
好的!我找到了减轻这个问题的方法。通过使用GetHttpRequestData()方法。
<cfscript>
_cookie = GetHttpRequestData().headers.cookie;
</cfscript>
我刚遇到了这个问题。在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>