1

我正在尝试启动对 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 中有任何内容,我尝试回显某些内容,但即使我只是在脚本顶部回显某些内容并退出,我创建的警报中仍然没有响应。

我尝试使用 get,但确实得到了回复。

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

4

2 回答 2

2

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

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

POST 需要内容长度。

于 2012-05-16T23:45:15.790 回答
1

我怀疑Aerik对您遇到问题的原因的回答是正确的。

也就是说,由于您已经在 javascript 中使用了 jQuery,我相信如果您考虑使用jQuery 的$.post(). 它会为你处理所有这些类型的并发症,所以如果有任何其他类似的小问题,你不会遇到问题。

于 2012-05-17T02:06:24.587 回答