ReyAnthonyRenacia
ReyAnthonyRenacia

Reputation: 17613

How to Send a body of data to XMLHttpRequest that looks like this?

How do I format this correctly?

var params = {
  "range":"Sheet1!A4:C4",
  "majorDimension": "ROWS",
  "values": [
    ["Hello World","123", "456"]
  ],
}

Then send it using POST like :

   var xhr = new XMLHttpRequest();
   xhr.open(method, url);
   xhr.setRequestHeader('Authorization', 'Bearer ' + access_token);
   xhr.onload = requestComplete;
   xhr.send(params);

I know Im going to encounter errors because there's a proper way of formatting my "request body". It looks like a mixture of array and JSON so Im asking for your help how to format it correctly.

Upvotes: 28

Views: 65562

Answers (2)

Vladu Ionut
Vladu Ionut

Reputation: 8193

var xhr = new XMLHttpRequest();
   xhr.open(method, url);
   xhr.setRequestHeader('Authorization', 'Bearer ' + access_token);
   xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
   xhr.onload = requestComplete;
   xhr.send(JSON.stringify(params));

It looks like you just needed to stringify your params before passing them to send()

Upvotes: 47

El'Magnifico
El'Magnifico

Reputation: 818

Have you tried it out yet? You can't just assume that you are going to encounter errors. You wouldn't know unless you try. Try you first method, if it fails, you would have discovered a way that won't work. Then you find other ways that would work, that's how we learn. It is from the errors and failures that we learn not from the successes.

That being said, if your method fails as you have assumed, try to use JSON.stringify on the params before sending it just like this

xhr.send(JSON.stringify(params))

That should work.

Upvotes: 7

Related Questions