feat(add-headers):

- Adds 2 new settings to BaseAPI, xhrWithCredentials and xhrHeaders.
  - xhrWithCredentials is set to false default to make this a non breaking change but will allow people to set this to try to send Domain Cookies
  - xhrHeaders gives the ability to add custom headers to the XHR Request to the LMS, allowing additional information to be sent
This commit is contained in:
Ross Steele
2021-07-09 08:49:21 +01:00
parent 674bbf051c
commit e7249d9869
10 changed files with 113 additions and 20 deletions

View File

@@ -530,7 +530,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
function _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
@@ -607,6 +607,8 @@ var BaseAPI = /*#__PURE__*/function () {
selfReportSessionTime: false,
alwaysSendTotalTime: false,
strict_errors: true,
xhrHeaders: {},
xhrWithCredentials: false,
responseHandler: function responseHandler(xhr) {
var result;
@@ -1707,6 +1709,14 @@ var BaseAPI = /*#__PURE__*/function () {
var httpReq = new XMLHttpRequest();
httpReq.open('POST', url, settings.asyncCommit);
if (Object.keys(settings.xhrHeaders).length) {
Object.keys(settings.xhrHeaders).forEach(function (header) {
httpReq.setRequestHeader(header, settings.xhrHeaders[header]);
});
}
httpReq.withCredentials = settings.xhrWithCredentials;
if (settings.asyncCommit) {
httpReq.onload = function (e) {
if (typeof settings.responseHandler === 'function') {
@@ -10624,7 +10634,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
function _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }