web-dev-qa-db-fra.com

Comment envoyer un corps de données à XMLHttpRequest qui ressemble à ceci?

Comment formater cela correctement?

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

Envoyez-le ensuite en utilisant POST comme:

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

Je sais que je vais rencontrer des erreurs car il existe un moyen approprié de formater mon "corps de demande". Il ressemble à un mélange de tableau et de JSON, donc je vous demande de l'aide pour le formater correctement.

11
noogui
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));

Il semble que vous ayez juste besoin de stringifier vos paramètres avant de les passer à send ()

17
Vladu Ionut

L'avez-vous déjà essayé? Vous ne pouvez pas simplement supposer que vous allez rencontrer des erreurs. Vous ne le sauriez que si vous essayez. Essayez votre première méthode, si elle échoue, vous auriez découvert un moyen qui ne fonctionnera pas. Ensuite, vous trouvez d'autres moyens qui fonctionneraient, c'est ainsi que nous apprenons. C'est des erreurs et des échecs que nous apprenons non des succès.

Cela étant dit, si votre méthode échoue comme vous l'avez supposé, essayez d'utiliser JSON.stringify sur les paramètres avant de l'envoyer comme ça

xhr.send(JSON.stringify(params))

Cela devrait fonctionner.

4
El'Magnifico