2014-11-05 66 views
0

我一直在試圖做一個HTTP.post與數據,但我不斷收到一個401響應,說一個增值稅(client_id)缺失。流星HTTP.post格子返回401

代碼:

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'd所有的變量,他們都有價值。

那麼,我在這裏做錯了什麼?

回答

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; 
} 
0

嘗試使用params代替的數據:

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

data發送值作爲JSON編碼爲POST期間身體。 Params將它們作爲多/部分表單數據發送,這是我懷疑API使用的。

+0

不幸的是有404 '的錯誤,那響應:失敗[404] { 「代碼」:1601, 「消息」: 「產品無法使用」 ,「解決」:「該產品尚未供該機構使用。」 }'' – 2014-11-07 03:08:00

+0

@nateritter可能值得用'curl'檢查API。如果你有這個錯誤,這意味着你的輸入數據有問題,而不是代碼。 – Akshat 2014-11-07 04:00:13

+0

我做到了,它在curl下工作,但我終於找到了問題。將發佈答案。感謝@Akshat的幫助。 – 2014-11-07 17:24:34