通过ajax请求发送post数据,在参数中使用变量

时间:2013-07-23 22:15:11

标签: javascript http-post

我在尝试通过ajax请求通过post数据通过参数发送变量时遇到了很多麻烦,我无法让它因某些奇怪的原因而工作。当我使用实际变量包含的内容时,没有问题,但我不能这样做,因为它每次都会改变,所以不是使用硬编码的东西而是想尝试使用变量,它所包含的字符的字符集总是虽然如此。

var http=new XMLHttpRequest();
uri='http://www.example.com/profile.php';
http.open('POST',uri,true);
params='name=Tom&lastname=Jordan&'+variable+'='+secondvariable+';
http.setRequestHeader('Content-type','application/x-www-form-urlencoded');
http.setRequestHeader('Content-length',params.length);
http.setRequestHeader('Connection', 'close');
http.onreadystatechange=function(){
if(http.readyState==4&&http.status==200){
//alert(http.responseText);
}
};
http.send(params);

将变量与一些纯文本一起包含的正确语法是什么?或者我只是如何使这项工作?

2 个答案:

答案 0 :(得分:2)

你有一个流浪的引用:

变化:

params='name=Tom&lastname=Jordan&'+variable+'='+secondvariable+';

为:

params='name=Tom&lastname=Jordan&'+variable+'='+secondvariable;

此外,请确保正确转义您的变量:

params='name=Tom&lastname=Jordan&'+variable+'='+encodeURIComponent(secondvariable);

答案 1 :(得分:0)

你有一个额外的单引号:

params='name=Tom&lastname=Jordan&'+variable+'='+secondvariable+';

最后+'不是必需的,它将分号视为字符串。 (可能会导致语法错误。)