From 747740de70ec277da6e8b01c68144c350a4630ee Mon Sep 17 00:00:00 2001 From: Adam Shukur Date: Tue, 21 Jul 2015 14:07:11 -0500 Subject: [PATCH] Allow for optional xhr headers object when retrieving data from url --- src/config.js | 1 + src/core.js | 2 +- src/data.convert.js | 10 ++++++++-- src/data.load.js | 2 +- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/config.js b/src/config.js index f8bfe2e..b4941c4 100644 --- a/src/config.js +++ b/src/config.js @@ -55,6 +55,7 @@ c3_chart_internal_fn.getDefaultConfig = function () { data_onselected: function () {}, data_onunselected: function () {}, data_url: undefined, + data_headers: undefined, data_json: undefined, data_rows: undefined, data_columns: undefined, diff --git a/src/core.js b/src/core.js index 4f5f3fa..48d47d5 100644 --- a/src/core.js +++ b/src/core.js @@ -72,7 +72,7 @@ c3_chart_internal_fn.init = function () { $$.initParams(); if (config.data_url) { - $$.convertUrlToData(config.data_url, config.data_mimeType, config.data_keys, $$.initWithData); + $$.convertUrlToData(config.data_url, config.data_mimeType, config.data_headers, config.data_keys, $$.initWithData); } else if (config.data_json) { $$.initWithData($$.convertJsonToData(config.data_json, config.data_keys)); diff --git a/src/data.convert.js b/src/data.convert.js index eefcf1d..3c4da57 100644 --- a/src/data.convert.js +++ b/src/data.convert.js @@ -1,6 +1,12 @@ -c3_chart_internal_fn.convertUrlToData = function (url, mimeType, keys, done) { +c3_chart_internal_fn.convertUrlToData = function (url, mimeType, headers, keys, done) { var $$ = this, type = mimeType ? mimeType : 'csv'; - $$.d3.xhr(url, function (error, data) { + var req = $$.d3.xhr(url); + if (headers) { + Object.keys(headers).forEach(function (header) { + req.header(header, headers[header]); + }); + } + req.get(function (error, data) { var d; if (!data) { throw new Error(error.responseURL + ' ' + error.status + ' (' + error.statusText + ')'); diff --git a/src/data.load.js b/src/data.load.js index 49eee28..3b5bf72 100644 --- a/src/data.load.js +++ b/src/data.load.js @@ -39,7 +39,7 @@ c3_chart_internal_fn.loadFromArgs = function (args) { $$.load($$.convertDataToTargets(args.data), args); } else if (args.url) { - $$.convertUrlToData(args.url, args.mimeType, args.keys, function (data) { + $$.convertUrlToData(args.url, args.mimeType, args.headers, args.keys, function (data) { $$.load($$.convertDataToTargets(data), args); }); }