ZenDesk API不能在对象内POST数组

问题描述 投票:0回答:1

我正在使用zafClient按照这篇文章来执行请求。https:/developer.zendesk.comappsdocscore-apiclient_api#client.requestoptions。

到目前为止,我用GET请求成功,可以获取需要的信息。例如,当我执行POST操作时,我得到了一个讨厌的错误,我无法对抗。

zafClient.request({
    url: '/api/v2/macros.json',
    httpCompleteResponse: true,
  }).then(response => {
    console.log(response.responseJSON);  
  }, error => {
    console.log(error.responseText)
  })

但是,当我执行POST操作时,我得到了讨厌的错误,我不能打。 这里是post。

zafClient.request({
    url: '/api/v2/macros.json',
    method: 'POST',
    data: {
      "macro": {
        'title': "Created Macro with API test",
        'actions': [{ "field": "subject", "value": "Change subjectline with API" }]
      }
    }
  }).then(res => console.log(res), error => console.log(error.responseText))

这里是post: 这里是error.responseTest

{
  "error": {
    "title": "Invalid attribute",
    "message": "You passed an invalid value for the actions attribute. Invalid parameter: actions must be an array from api/v2/rules/macros/create"
  }
}

如果我只记录 "宏 "这个对象,我可以看到 "动作 "这个属性是一个数组,所以 "宏 "这个对象正是我从API中获取的一个对象

欢迎提出任何想法,我到底做错了什么。

javascript post xmlhttprequest zendesk
1个回答
0
投票

现在我知道我应该用JSON.Stringify传递数据:)

zafClient.request({
    url: '/api/v2/macros.json',
    httpCompleteResponse: true,
    contentType: 'application/json',
    method: 'POST',
    data: JSON.stringify({
      macro: {
        title: "Created Macro with API test",
        actions: [{ "field": "subject", "value": "Change subjectline with API" }]
      }
    })
  }).then(res => console.log(res), error => console.log(error.responseText))

第一次使用HTTP请求的经验

© www.soinside.com 2019 - 2024. All rights reserved.