2014-02-05 217 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>