抱歉我的英文......
为什么这个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;
答案 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;