我正在使用的当前xmlhttp函数是将一个非常小的int传递给php文件,以便使用GET方法进行处理。
xmlhttp=GetXmlHttpObject();
if (xmlhttp==null)
{
alert ("Browser does not support HTTP Request");
return;
}
var url="user_submit.php";
url=url+"?vote="+value;
url=url+"&sid="+Math.random();
xmlhttp.onreadystatechange=stateChanged;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
function stateChanged()
{
if (xmlhttp.readyState==4)
{
document.getElementById("captionbox").innerHTML=xmlhttp.responseText;
}
}
现在我想在这个ajax请求中处理一个comment
框,我想这需要一个POST调用?任何人都可以帮我这个吗?
我需要通过这个ajax请求将注释框的内容发送到php文件进行处理,然后添加到数据库中。
答案 0 :(得分:2)
...
var url="user_submit.php",
data="vote="+value+"&sid="+Math.random();
xmlHttp.setRequestHeader("Content-type","application/x-www-form-urlencoded; charset=UTF-8");
xmlHttp.setRequestHeader("Content-length", data.length);
xmlhttp.open("POST",url,true);
...
xmlHttp.send( data );
...
答案 1 :(得分:1)
您使用send()
以这种方式发送POST数据。然后,您必须发送正确的标头并正确编码该数据等。
话虽如此,使用XmlHttpRequest
令人难以置信的乏味。需要考虑跨浏览器问题(例如,XmlHttpRequest
不存在时的回退),并且您可以看到代码本身很混乱。
考虑使用jQuery之类的Javascript库,然后将代码缩减为:
$("#captionbox").load('user_submit.php', {
vote: value,
sid: 12345
});
还可以正确地对查询字符串参数(以及许多其他东西)进行编码。
发表评论,想象一下:
<textarea id="comment"></textarea>
<input type="button" id="send" value="Send">
然后:
$.post("post_comment.php", {
comment: $("#comment").text()
});
jQuery只有19K缩小和压缩。