xmlHttp字符串传递

时间:2009-12-21 01:42:29

标签: php javascript ajax

我正在使用的当前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文件进行处理,然后添加到数据库中。

2 个答案:

答案 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缩小和压缩。