Send request parameters from JSON with PUT request using


Code below:

    function getAddress() {
          var kite = Meteor.npmRequire('coinkite-javascript'); 
          sign = kite.auth_headers('somekey', 'somesecret', '/v1/new/receive');
          console.log(kite.auth_headers('somekey', 'somesecret', '/v1/new/receive'));
          console.log("PUT", "", { params: { account: 'CA8A4C1B40-359DC0' } + sign}));
    Meteor.startup(function () {


Anyhow, this code is not working for some reason.
While the JSON object returned by the key generator (sign) is:

{ ‘X-CK-Key’: ‘somekey’,‘X-CK-Sign’: ‘3655960c6ad67a0f3d57cd9468d375defcdae96587e6b5778e6dbbb9b6470568’,
‘X-CK-Timestamp’: ‘2015-05-12T01:09:55.551Z’ }

the request returns a 401 saying the X-CK-KEY is not defined.

How can I effectively add these parameters to the put request?


According to the documentation I think you need to specify the data in options, url, [options], [asyncCallback])

where options should be

options = {data: {  params: { account: 'CA8A4C1B40-359DC0' } + sign} }


Mm that makes sense but its not working for some reason.

          console.log("PUT", "", options = {data: {  params: { account: 'CA8A4C1B40-359DC0' } + sign} }));

Still thinks the CK key is missing - from the docs it sounds like parameters are not supported on a PUT request but thats not compliant with HTTP spec


Hmm, I can’t find where it says that PUT doesn’t support data. What does the return object look like?


You can’t merge two objects together in JavaScript with the + operator. You could consider using _.extend():

var params = _.extend(sign, {account: 'CA8A4C1B40-359DC0'})

Although for the sake of a single additional property, I’d probably just use:

sign.account = 'CA8A4C1B40-359DC0';

and use sign as the params:"PUT", "", { params: sign});


Duh! I totally missed that.