如何使用 Trello API 在 JavaScript 中发送对象? (XMLHttpRequest)

How to send object in JavaScript With Trello API? (XMLHttpRequest)

我是 javaScript 的新手。我能够发送一些 PUT 请求,问题是其中 none 让我发送了一个对象。 现在我想在 Trello 中将对象发送到 add/change 卡片封面(例如单独更改颜色/添加封面),但在 Trello API 中,封面是对象类型。 我怎样才能用 XMLHttpRequest 做到这一点?

我的普通 PUT 请求(有效,但不适用于对象):

function updateCheckItem(cardId, checkItemId, state) { // state is boolean
   var url = "https://api.trello.com/1/cards/" + cardId + "/checkItem/" + checkItemId + "?key=...&token=...&state=" + state;

   var xhr = new XMLHttpRequest();
   xhr.open("PUT", URL);

   xhr.setRequestHeader("Accept", "application/json");
   xhr.setRequestHeader("Content-Type", "application/json");

   xhr.onreadystatechange = function () {
       if (this.readyState == 4) {
           //do something not relevant
       }
   };

   xhr.send();
}

现在,我应该如何发送对象而不是上面代码中的布尔状态?

我搜索并找到了一些关于 JSON.stringify 的东西,但对我不起作用/不知道如何使用它。

我最后一次失败的尝试:

function Cover(cardId) {
   var url = "https://api.trello.com/1/cards/" + cardId + "?key=...&token=...&cover";

   var xhr = new XMLHttpRequest();
   xhr.open("PUT", URL);

   xhr.setRequestHeader("Accept", "application/json");
   xhr.setRequestHeader("Content-Type", "application/json");

   xhr.onreadystatechange = function () {
       if (this.readyState == 4) {
            //do something not relevant
       }
   };

   xhr.send({ "cover": { "color": "pink" } });
}

以下是选项: Options for Trello card cover update

这是一张 JSON Trello 卡片的样子:

{
   "id": "..."
   .
   .
   .
   "cover": {
      "idAttachment": null,
      "color": null,
      "idUploadedBackground": null,
      "size": "normal",
      "brightness": "dark",
      "idPlugin": null
   },
   .
   .
   .
}

谢谢。

我解决了,如果有人找到这个并想要答案,就是这个:

function uptadeCardCover(cardId,color,size) {
   var url = "https://api.trello.com/1/cards/" + cardId + "?key=xxxxxx&token=xxxxxxxxx";

   var xhr = new XMLHttpRequest();
   xhr.open("PUT", URL);

   xhr.setRequestHeader("Accept", "application/json");
   xhr.setRequestHeader("Content-Type", "application/json");

   xhr.onreadystatechange = function () {
       if (this.readyState == 4 && this.status == 429) {
           // not relevant
       }
   };

   xhr.send(JSON.stringify({
       "cover": {
           "color": color,
           "size": size
       }
   }));
}