0

我一直在尝试用数据做一个 HTTP.post,但我不断收到 401 响应,说其中一个 vars (client_id) 丢失。

代码:

fetchPlaidAccounts: function (options) {
    this.unblock();
    response = HTTP.post(config.plaid.base_url + 'connect', {
        data: {
            client_id: config.plaid.client_id,
            secret: config.plaid.secret,
            username: options.username,
            password: options.password,
            type: options.institution,
            email: options.email,
            options: '{"login_only":true,"list":true}'
        },
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded',
            'Access-Control-Allow-Origin': '*'
        }
    });
    return response;
}

我之前做了一个 HTTP.get 并且使用参数而不是数据效果很好。

我还控制台记录了所有变量,它们都有值。

那么,我在这里做错了什么?

4

2 回答 2

2

我回答了我自己的问题。

headers来了解一下,在服务器端的时候我不需要添加。只有在客户端运行呼叫时才需要这些标头。

因此,最终调用如下所示:

fetchPlaidAccounts: function (options) {
    this.unblock();
    var d = {
        client_id: config.plaid.client_id,
        secret   : config.plaid.secret,
        username : options.username,
        password : options.password,
        email    : options.email,
        type     : options.institution,
        options: '{"login_only":true,"list":true}'
    };
    var response = HTTP.post(config.plaid.base_url + 'connect', { data: d });
    return response;
}
于 2014-11-07T17:26:14.430 回答
0

尝试使用params而不是数据:

HTTP.post(config.plaid.base_url + 'connect', {
    params: {
        ...
    }

data在 POST 期间将值作为 JSON 编码为正文发送。参数将它们作为多/部分表单数据发送,这是我怀疑 API 使用的。

于 2014-11-05T07:46:13.380 回答