更改获取代码以使用post协议

时间:2011-05-03 04:17:58

标签: javascript xmlhttprequest

我想更改以下代码以使用POST请求。我怎样才能做到这一点?

function getRecord(){
   xhr.open("GET", "items.php?id=" + Number(new Date), true);
   xhr.onreadystatechange = getData;
   xhr.send(null);
}

2 个答案:

答案 0 :(得分:1)

以下代码应该适合您。不是这样,除了将"GET"更改为"POST"之外,您还需要执行其他一些操作 - 发送标头,并分别发送参数(最后一行)。目前,您没有发送任何参数(您的最后一行);它们的编码方式与GET参数相同,只是没有“?”在开始。

function getRecord() {
    var params = "id=" + Number(new Date);
    xhr.open("POST", "items.php", true);

    //Send the proper header information along with the request
    xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xhr.setRequestHeader("Content-length", params.length);
    xhr.setRequestHeader("Connection", "close");

    xhr.onreadystatechange = getData;
    xhr.send(params);
}

答案 1 :(得分:0)

您需要像https://developer.mozilla.org/en-US/docs/Web/API/FormData/Using_FormData_Objects#Creating_a_FormData_object_from_scratch

上所述创建一个FormData对象

但它只适用于Gecko 2浏览器