getLinkerUrl 未跨域传递 cookie - Google Analytics
Posted
技术标签:
【中文标题】getLinkerUrl 未跨域传递 cookie - Google Analytics【英文标题】:getLinkerUrl not passing cookies across domains - Google Analytics 【发布时间】:2012-01-04 21:45:20 【问题描述】:我有一个客户正在使用一个链接到不同域上的预订引擎的表单。然而,他们并没有使用传统的编码形式:
<div id="qs" align="center">
<div align="center"><img src="images/qs_title.gif" >
<table border="0" cellpadding="0" cellspacing="0">
<!--<form method="post">--><form method="post">
....
<td valign="bottom"><div align="left"><a href="javascript:sendToCBE();"><img src="quicksearch/continue-buttom_dreams.gif" border="0" ></a></div></td>
因为表单是由 JavaScript 文档 CBE 管理的,它是用 getLinkerURL 代码修改的:
// JavaScript Document
function popup_no_status(loc)
var windowW=1000
var windowH=700
s = ",,status=yes, resizable=yes, scrollbars=yes";
mywin = window.open(pageTracker._getLinkerUrl(loc), "CBE", s);
mywin.focus();
有人告诉我这应该可以,但它似乎没有传递 cookie。目标/域页面上确实有 pageTracker._setAllowLinker(true);
代码。但是,只有目标页面上有setAllowHash(false);
代码。域 1(我要传递 cookie 的域)是否也需要 setAllowHash(false);
代码?我不确定我在这里缺少什么。 cookie 没有被传递,所以我从第一个域获得了一个推荐 cookie。有任何想法吗?非常感谢所有见解!
【问题讨论】:
_setAllowHash(false)
现在已被弃用,您根本不应该使用它。
@eduardocereto 我无法直接访问已弃用的_setAllowHas(false)
所在的网站。目标页面上的代码是否会影响传递的 cookie 以实现跨域跟踪?还有其他建议可以使这项工作吗?
您能否验证 cookie 在更简单的配置中传递(只是链接而不是表单)?它将允许验证目标站点的配置。接下来,您应该查看 linkByPost :code.google.com/apis/analytics/docs/gaJS/…._linkByPost
【参考方案1】:
我是 *** 的新手,我没有足够的声誉评论来澄清这个问题,如果我违反了任何礼仪规则,我深表歉意,因为这更多的是试图提供帮助而不是实际答案。
新弹出窗口的 url 是否附加了额外的跟踪参数? Cookie 是根据这些参数创建的,因此如果没有发生这种情况,则需要修复。
如果它们存在,则可能是您在第二个域上的 GA 设置存在问题。
如果它们不存在,请添加:
console.log('loc: ' + loc');
之后: mywin = window.open(pageTracker._getLinkerUrl(loc), "CBE", s);
记录的 url 应附加跟踪参数。如果不是,那么您的问题与第一个域有关。
-
如果参数在 loc url 中,那么您应该看到在那之后发生了什么 - 也许您有重定向或剥离参数的东西。
顺便说一句,我已经在已弃用的 _setAllowHash 存在的情况下进行了跨域跟踪,但它没有造成问题,所以我怀疑这是一个问题。
【讨论】:
以上是关于getLinkerUrl 未跨域传递 cookie - Google Analytics的主要内容,如果未能解决你的问题,请参考以下文章
ASP.Net中关于WebAPI与Ajax进行跨域数据交互时Cookies数据的传递