跟踪像素是否可以从远程服务器执行javascript?

时间:2012-01-02 15:25:53

标签: javascript servlets tracking local-storage pixel

我想在第三方html文件上放置跟踪像素,这将调用将返回javascript的servlet。这个javascript应该从本地存储中获取一个值并将其报告给其他servlet。例如:

追踪像素:

<img src="http://myserver.com/report" width="1" height="1">

报告servlet将返回以下javascript:

var value= localStorage.getItem("myLocalStorageKey");
var serverUrl = "www.myserver.com/myservlet?value=" + value;
var xmlHttp = new XMLHttpRequest();
xmlHttp.open("GET", serverUrl, true);
xmlHttp.send("");

这不起作用,因为src属性不期望处理javascript。 有什么方法可以做到这一点吗? 如果将从第三方html页面调用javascript,它将无法从本地存储中获取值,因为该值是从“myserver.com”域输入的,而不是从第三方域输入的。< / p>

任何想法???

谢谢, 达尼

1 个答案:

答案 0 :(得分:3)

它不会起作用,期间。 Javascrsipt对xmlhttprequests有一个“同源”安全策略。此脚本的源代码将是您的服务器,因此除了您的服务器之外,它不能与任何其他服务器联系。

你可以使用JSONP来解决它,它可以动态地在页面的DOM中构建/插入一个完整的<script>...</script>标记/代码集,但是你仍然坚持你正在加载这个通过<img>标记,无论如何都不会执行代码。

相反,请考虑做类似

的事情
<script type="text/javascript" src="http://yourserver/track_me.js"></script>

并使用该脚本提供创建jsonp的代码。