2012-04-08 55 views
0

我正在研究一個簡單的投票系統。當兩個文件在一起時(本地),它工作正常。innerhtml不能在博主上工作

但是,當我在博客上發佈它時,無法輸出結果。 (上點擊投票被登記在虛擬主機提供商,但結果就是不顯示!)

繼承人我的代碼:

<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> 

回答

1

這不是innerHTML無法運作。這是你打電話給外部網站。您不能使用XMLHttpRequest從域外獲取資源:它被稱爲跨域限制並且內置於瀏覽器規範中。

它適用於PHP與代碼GET相同的域名,因爲這不是跨域的。

您可以通過使用代理腳本在您網域輪的限制:頁面從服務器端腳本請求的結果,該腳本得到結果從真正的位置,這個結果返回給瀏覽器。

這可能不適合Blogger,所以Blogger提供their own poll widget

+0

非常感謝你安德魯!換句話說,擁有自己的虛擬主機服務可以使這項工作成爲可能? – 2012-04-08 23:29:11