谷歌分析如何避免相同的原始政策?

时间:2012-12-01 13:20:43

标签: php javascript google-analytics same-origin-policy

我有一个涉及Javascript终端的项目的想法,该终端利用指定的PHP脚本作为服务器来执行远程功能。我理解同样的原始政策会成为这样一个项目的障碍,但是看看我每天使用的谷歌分析,似乎他们有办法大规模地避免这个问题。

3 个答案:

答案 0 :(得分:14)

允许跨域请求的现代方法是服务器使用以下标头响应任何请求:

Access-Control-Allow-Origin: *

这允许来自任何主机的请求,或者可以使用特定主机而不是*。这称为跨源资源共享(CORS)。不幸的是,它在旧版浏览器中不受支持,因此在这种情况下你需要通过黑客来解决浏览器问题(就像评论者所说,可能是通过请求图片)。

答案 1 :(得分:12)

Google Analytics,Google AdWords以及几乎所有其他分析/网络营销平台都使用<img>代码。

他们加载他们的JS程序,这些程序处理你在页面上放置的任何跟踪,然后他们创建一个图像并将图像的来源设置为等于他们服务器的域名,并将所有跟踪信息添加到查询字符串。

关键是它如何到达那里并不重要:
服务器只关心被调用的URL内部的数据,客户端只关心调用特定的URL,而不是获取任何返回值。
因此,有人选择<img>年前和几年前,公司一直在使用它。

答案 2 :(得分:-1)

您可以从第三方网站获取代码,但使用这些代码收集数据受the policy限制。

Google使用&#34; _gaq&#34;收集数据由1st-orgine-site嵌入的函数数组,然后Google将收集的数据发送到http-request参数中。

http://www.google-analytics.com/__utm.gif?utmwv=4&utmn=769876874&utmhn=example.com&utmcs=ISO-8859-1&utmsr=1280x1024&utmsc=32-bit&utmul=en-us&utmje=1&utmfl=9.0%20%20r115&utmcn=1&utmdt=GATC012%20setting%20variables&utmhid=2059107202&utmr=0&utmp=/auto/GATC012.html?utm_source=www.gatc012.org&utm_campaign=campaign+gatc012&utm_term=keywords+gatc012&utm_content=content+gatc012&utm_medium=medium+gatc012&utmac=UA-30138-1&utmcc=__utma%3D97315849.1774621898.1207701397.1207701397.1207701397.1%3B... 

Google清楚地展示了how tracking works.