0

我正在研究一个简单的投票系统。当两个文件在一起(本地)时,它工作正常。

但是,当我在博客上发布它时,它无法输出结果。(点击投票在虚拟主机上注册,但结果不显示!)

这是我的代码:

<script type="text/javascript">
function getVote(int)
{
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("poll").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","http://pacontest.eu.pn/poll_vote.php?vote="+int,true);
xmlhttp.send();
}
</script>
<div id="poll">
<h3>Do you like this?</h3>
<form>
Yes:
<input type="radio" name="vote" value="0" onclick="getVote(this.value)" />
No:
<input type="radio" name="vote" value="1" onclick="getVote(this.value)" />
</form>
</div>
4

1 回答 1

1

这不是innerHTML不工作。这是您对外部站点的调用。您不能使用 XMLHttpRequest 从域外获取资源:这称为跨域限制,并且内置于浏览器规范中。

当 PHP 托管在与它的代码相同的域上时,GET它就可以工作,因为那不是跨域的。

您可以通过在您的域上使用代理脚本来绕过限制:页面从该服务器端脚本请求结果,该脚本从真实位置获取结果,将该结果返回给浏览器。

这不太可能成为 Blogger 的选项,因此 Blogger 提供了他们自己的投票小部件

于 2012-04-08T17:37:23.913 回答