我正在尝试启动对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,然后我得到回复。
任何帮助都将不胜感激,谢谢。
答案 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()
,你会简化一些事情。它会为你处理所有这些类型的并发症,所以如果还有其他类似的小问题,你就不会遇到问题。