我想在第三方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>
任何想法???
谢谢, 达尼
答案 0 :(得分:3)
它不会起作用,期间。 Javascrsipt对xmlhttprequests有一个“同源”安全策略。此脚本的源代码将是您的服务器,因此除了您的服务器之外,它不能与任何其他服务器联系。
你可以使用JSONP来解决它,它可以动态地在页面的DOM中构建/插入一个完整的<script>...</script>
标记/代码集,但是你仍然坚持你正在加载这个通过<img>
标记,无论如何都不会执行代码。
相反,请考虑做类似
的事情<script type="text/javascript" src="http://yourserver/track_me.js"></script>
并使用该脚本提供创建jsonp的代码。