2014-02-05 52 views
1

我是JavaScript和AJAX的新手,在這個問題上花費了最後的8個小時,並且打敗了我。我知道它簡單,只是找不到我做錯了什麼。我在我的網站上有一個圖片,用on-click = SendCommand()。這是js代碼,我有XMLHttpRequest什麼都不做....?

function SendCommand(){ 
     alert("BingoBango!"); 

     var xmlhttp = new XMLHttpRequest(); 
     xmlhttp.open("GET","https://www.justanexample.com/API/MobileAPP/SendCommand.php?apikey=7785adf3a5d3a3adsf555nb5v55bsaer5v&mac=b827eb6ffa19&command=2",true); 
     xmlhttp.send(); 
}; 

我得到的警告消息,並且我使用Firebug或鉻JavaScript控制檯沒有錯誤。但是,該頁面不會執行。然而,我可以複製並粘貼到瀏覽器的確切網址,併成功執行。

任何幫助將非常感激,它踢我的屁股。

+2

你預計會發生什麼?你在網絡標籤中看到什麼? – SLaks

+0

您是否看到瀏覽器開發工具/網絡選項卡中顯示新請求?如果不是,請求沒有被髮送。 – helion3

+0

讓我檢查一下,感謝您的快速回復!此外,只是有一個想法,服務器上的SSL證書是自簽名的,可能會導致一個問題? – chuckycharms

回答

1

它在調用時調用一個python腳本的頁面以及更新一個MySQL記錄。有沒有什麼我可以做我的請求,要求它不使用瀏覽器緩存,實際上打我的服務器?

您不應該使用GET請求執行服務器上的操作。用POST代替,其中should not be cached

如果這沒有幫助,請修改HTTP cache headers或作爲最後手段將隨機字符串追加到url。

+0

你不應該在答案部分發表評論;) –

+0

@Niet:簡短,但它是一個答案,不是嗎? – Bergi

+0

好吧,現在是XD問題是由緩存標題引起的。 –

0

這是我會怎麼做

JS

function SendCommand() 
{ 
var xmlhttp; 
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("myDiv").innerHTML=xmlhttp.responseText; 
    } 
} 
xmlhttp.open("GET","https://www.justanexample.com/API/MobileAPP/SendCommand.php?apikey=7785adf3a5d3a3adsf555nb5v55bsaer5v&mac=b827eb6ffa19&command=2",true); 
xmlhttp.send(); 
} 

HTML

<button type="button" onclick="SendCommand()">My button</button> 
<div id="myDiv"></div>