Sending Http POST Request through Rest API in Javascript

32,853
xmlhttp.send(parameters);
             ^^^^^^^^^^

That needs to be a string, but it is an object, so will be converted to the string: "[object Object]".

You need to convert the data to the proper encoding first.

You've said:

xmlhttp.setRequestHeader("Content-type", "application/json");

so you can use JSON.stringify(parameters) for that.

Share:
32,853
Amir
Author by

Amir

Updated on May 04, 2020

Comments

  • Amir
    Amir about 4 years

    I am trying to send an Http post request to parse.com server through Rest API keys. Not sure if I am doing it right as below. The following is my whole script and makes a button which should trigger the post request in a simple HTML page.

    <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>