2012-05-16 67 views
1

我试图启动一个ajax后调用一个php脚本,它将更新我的数据库中的一些值。在PHP脚本中没有看到Ajax post vars

我遇到的问题是,在我的PHP脚本中看不到POST值,或者至少我没有任何回应。

这里是我的javascript:

<script type="text/javascript"> 
$("btnOpsb").onclick = pinOpsb; 
function pinOpsb(){ 
var params = "wxdata = test"; 
var ajaxRequest; 
try{ajaxRequest = new XMLHttpRequest();} catch (e){try{ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");} catch (e) {try{ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");} catch (e){alert("Error: Browser/Settings conflict");return false;}}} 
    ajaxRequest.onreadystatechange = function(){ 
     if(ajaxRequest.readyState == 4){ 
      alert(ajaxRequest.responseText); 
     } 
    } 
    ajaxRequest.open("POST","wx2strip.php",true); 
    ajaxRequest.setRequestHeader("Content-type","application/x-www-form-urlencoded"); 
    ajaxRequest.send("fname=Henry&lname=Ford"); 
} 
</script> 

在我wx2strip.php我试图回显的东西,如果$ _ POST曾在任何东西,但即使我只是呼应的东西在脚本和退出的顶部,我创建的警报仍然没有回应。

我试过使用get,我确实得到了回应。

任何帮助,将不胜感激,谢谢。

+0

你在使用'jQuery' – mgraph

回答

2

添加这两条线设定右头:需要POST

ajaxRequest.setRequestHeader("Content-length", "fname=Henry&lname=Ford".length); 
ajaxRequest.setRequestHeader("Connection", "close"); 

内容长度。

+0

谢谢你,它确实解决了它。我不知道这个长度是必需的,很高兴知道! –

1

我怀疑Aerik's answer对于您遇到问题的原因是正确的。

也就是说,既然您已经在您的javascript中使用jQuery,我相信如果您考虑使用jQuery's $.post(),您将简化相当多的事情。它会为你处理所有这些类型的复杂问题,所以如果还有其他小问题,你不会遇到问题。

+0

我一定会考虑在后期使用JQ。在使用JQuery之类的库之前,我只是喜欢先学习核心语言,这样我就能很好地理解。 –

+0

对你有好处!太多人跳过这一步! –