web-dev-qa-db-ja.com

このようなXMLHttpRequestにデータの本体を送信する方法は?

これを正しくフォーマットするにはどうすればよいですか?

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

次に、[〜#〜] post [〜#〜] likeを使用して送信します。

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

私は「リクエストボディ」をフォーマットする適切な方法があるため、エラーが発生することを知っています。配列とJSONが混在しているように見えるので、正しくフォーマットする方法を教えてください。

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

パラメータをsend()に渡す前に文字列化する必要があるように見えます

17
Vladu Ionut

まだ試してみましたか?エラーが発生すると想定することはできません。あなたがしようとしない限り、あなたは知りません。最初の方法を試してください。失敗した場合は、機能しない方法を発見したでしょう。次に、他の機能する方法を見つけます。それが私たちの学習方法です。成功からではなく、エラーや失敗から学びます。

そうは言っても、想定したとおりにメソッドが失敗した場合は、JSON.stringifyこのように送信する前のパラメータ

xhr.send(JSON.stringify(params))

うまくいくはずです。

4
El'Magnifico