在PHP脚本中看不到Ajax post vars

时间:2012-05-16 22:29:36

标签: php ajax post

我正在尝试启动对php脚本的ajax post调用,它会在我的数据库中更新一些值。

我遇到的问题是,在我的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中有任何内容,我会尝试回显一些东西,但即使我只是在脚本顶部回显并退出,我创建的警报中仍然没有响应。 / p>

我尝试使用get,然后我得到回复。

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

2 个答案:

答案 0 :(得分:2)

添加这两行以设置正确的标题:

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

POST需要内容长度。

答案 1 :(得分:1)

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

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