Ajax代码无法正常工作

时间:2013-08-11 07:11:07

标签: php javascript html ajax

抱歉我的英文......

为什么这个ajax代码不能正常工作?

当我在为他发送信息的页面中调用POST变量时,它显示POST变量不存在...

有人可以解释为什么会这样吗?

ajax代码的一部分:

var xhr = new XMLHttpRequest();
xhr.open("POST",url,true);
xhr.onreadystatechange = function() {
    if( this.readyState == 4 && this.status == 200) {
        document.getElementById(name).innerHTML = this.responseText;
    }
};
xhr.send("info="+str+"&info_1="+info_1+"&info_2="+info_2);
return false;

1 个答案:

答案 0 :(得分:1)

POST请求必须包含一些标头:

xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.setRequestHeader("Content-length", params.length);
xhr.setRequestHeader("Connection", "close");

编辑:

我的脚本使用名为'params'的变量。因此,在脚本的开头添加一个var,并在其中输入您的请求内容:

var params = "info="+str+"&info_1="+info_1+"&info_2="+info_2;

并在xhr.send“info =”+ str +“& info_1 =”+ info_1 +“& info_2 =”+ info_2; params:

xhr.send(params);

这是最终的脚本:

var xhr = new XMLHttpRequest();
var params = "info="+str+"&info_1="+info_1+"&info_2="+info_2;
xhr.open("POST",url,true);
xhr.onreadystatechange = function() {
    if( this.readyState == 4 && this.status == 200) {
        document.getElementById(name).innerHTML = this.responseText;
    }
};
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.setRequestHeader("Content-length", params.length);
xhr.setRequestHeader("Connection", "close");
xhr.send(params);
return false;