在Javascript中通过Rest API发送Http POST请求

Ami*_*mir 3 javascript post json parse-platform

我试图通过Rest API密钥向parse.com服务器发送一个Http post请求.不确定我是否正确地做到如下.以下是我的整个脚本,并创建一个按钮,该按钮应在简单的HTML页面中触发post请求.

<input id="clickMe" type="button" value="clickme" onclick="doFunction();" />
<script>

xmlhttp = new XMLHttpRequest();
var url = "https://api.parse.com/1/classes/english";
xmlhttp.open("POST", url, true);
xmlhttp.setRequestHeader("Content-type", "application/json");
xmlhttp.setRequestHeader("X-Parse-Application-Id", "VnxVYV8ndyp6hE7FlPxBdXdhxTCmxX1111111");
xmlhttp.setRequestHeader("X-Parse-REST-API-Key","6QzJ0FRSPIhXbEziFFPs7JvH1l11111111");
xmlhttp.onreadystatechange = function () { //Call a function when the state changes.
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
        alert(xmlhttp.responseText);
    }
}
var parameters = {
    "ephrase": "english",
    "pphrase": "farsi",
     "nvote": 0,
    "yvote": 0
};
// Neither was accepted when I set with parameters="username=myname"+"&password=mypass" as the server may not accept that

function doFunction() {
  xmlhttp.send(parameters);
}

</script>
Run Code Online (Sandbox Code Playgroud)

Que*_*tin 8

xmlhttp.send(parameters);
             ^^^^^^^^^^
Run Code Online (Sandbox Code Playgroud)

这需要是一个字符串,但它是一个对象,因此将转换为字符串:"[object Object]".

您需要先将数据转换为正确的编码.

你说过:

xmlhttp.setRequestHeader("Content-type", "application/json");
Run Code Online (Sandbox Code Playgroud)

所以你可以用JSON.stringify(parameters)它.