【问题标题】:Meteor HTTP.post not working with Trello APIMeteor HTTP.post 不适用于 Trello API
【发布时间】:2014-04-18 22:08:46
【问题描述】:

我正在尝试使用 Meteor 的 HTTP.post 方法通过 Trello API 创建一个 webhook,如下所示:

HTTP.post('https://api.trello.com/1/webhooks?key=...&token=...', {
    params: {
        idModel: '...',
        callbackURL: '...'
    },
}, function(error, result) {...});

请求有效,但我得到的响应是“idModel 的值无效”。但是,如果我使用 jQuery 尝试相同的请求:

$.ajax({
    type: 'POST',
    url: https://api.trello.com/1/webhooks?key=...&token=...,
    data: {
        idModel: '...',
        callbackURL: '...'
    },
});

一切正常(即创建 webhook 并返回数据)。不知何故,Meteor 的方法似乎使 Trello 无法解析 idModel 字段。任何想法这背后可能是什么?我做错了什么还是有错误?

【问题讨论】:

    标签: meteor trello


    【解决方案1】:

    尝试使用data 而不是params

    HTTP.post('https://api.trello.com/1/webhooks?key=...&token=...', {
      data: {
        idModel: '...',
        callbackURL: '...'
      },
    }, function(error, result) {...});
    

    【讨论】:

    • 当我尝试使用数据而不是参数时,我在控制台中收到以下错误:OPTIONS https://api.trello.com/1/webhooks?key=...&token=... Request header field Content-Type is not allowed by Access-Control-Allow-Headers. HTTP.post 发送了此标头:Access-Control-Request-Headers:content-type
    【解决方案2】:

    我通过将Content-Type 标头设置为application/x-www-form-urlencoded 解决了这个问题。之前是以text/plain 发送的。

    HTTP.post('https://api.trello.com/1/webhooks?key=...&token=...', {
      params: {
        idModel: '...',
        callbackURL: '...'
      },
      headers: {
        'Content-Type': 'application/x-www-form-urlencoded'
      }
    }, function(error, result) {...});
    

    【讨论】:

    • 嘿@fredick,你是如何修复 webhook 的,我怎样才能只在一个板上制作 webhook,我是新手。
    【解决方案3】:

    补充这个页面,因为我在 golang 中遇到了同样的问题。我通过添加来解决它

    req.Header.Add("Content-Type", "application/json")
    

    令人困惑的是 400 消息是关于无效 idModel 的。

    【讨论】:

      猜你喜欢
      • 2017-11-10
      • 2016-01-02
      • 1970-01-01
      • 2016-05-05
      • 2016-08-11
      • 1970-01-01
      • 2016-03-14
      • 1970-01-01
      • 2016-11-11
      相关资源
      最近更新 更多