我一直在尝试使用数据执行HTTP.post,但我一直收到401响应,说其中一个变量(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,使用params而不是数据工作得很好。
我也是console.log所有变量,它们都有值。
那么,我在这里做错了什么?
答案 0 :(得分: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;
}
答案 1 :(得分:0)
尝试使用params
代替数据:
HTTP.post(config.plaid.base_url + 'connect', {
params: {
...
}
data
在POST期间将值作为JSON编码为正文。 Params将它们作为多个/部分表单数据发送,这是我怀疑API使用的。