7

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>
2
  • 1
    what error are you getting? Commented Jun 22, 2015 at 9:43
  • I get no error. There is just nothing happening. Commented Jun 26, 2015 at 2:15

1 Answer 1

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

Sign up to request clarification or add additional context in comments.

27 Comments

im also trying to do the very same thing and the parameter that I am passing is string, even though getting XHR failed loading: POST
stringifying the data means a content type of text/plain needs to be sent, application/json suggest the body is a json object
@mast3rd3mon — There is no such thing as a JSON object. The return value of JSON.stringify is a string of JSON not a string of plain text.
which is formatted/written out as "{propName: 'someValue'}" which is a string
@mast3rd3mon — It would be '{"propName": "someValue"}' which is a string of JSON.
|

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.