From ff4b5edcbf29990361725e65adf33662e82959aa Mon Sep 17 00:00:00 2001 From: Anth Winter Date: Thu, 24 Dec 2015 12:03:51 +0000 Subject: [PATCH 1/2] Added IE version check helper function --- lib/helpers/ieVersion.js | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 lib/helpers/ieVersion.js diff --git a/lib/helpers/ieVersion.js b/lib/helpers/ieVersion.js new file mode 100644 index 0000000..ac4f11e --- /dev/null +++ b/lib/helpers/ieVersion.js @@ -0,0 +1,23 @@ +'use strict'; + +/** + * https://gist.github.com/padolsey/527683 + * + * A short snippet for detecting versions of IE in JavaScript + * without resorting to user-agent sniffing + * + * @returns {Number|undefined} Number of IE version (5-9), otherwise undefined + */ +module.exports = function ieVersion() { + var undef; + var v = 3; + var div = document.createElement('div'); + var all = div.getElementsByTagName('i'); + + while (( + div.innerHTML = '', + all[0] + )); + + return v > 4 ? v : undef; +}; From 0545573798fe9c036bcf8da0a83c4d16c3252b1e Mon Sep 17 00:00:00 2001 From: Anth Winter Date: Thu, 24 Dec 2015 12:05:55 +0000 Subject: [PATCH 2/2] Added condition to check for IE version before using XDomainRequest --- lib/adapters/xhr.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/adapters/xhr.js b/lib/adapters/xhr.js index b7c9fcf..e7be067 100644 --- a/lib/adapters/xhr.js +++ b/lib/adapters/xhr.js @@ -8,6 +8,7 @@ var buildURL = require('./../helpers/buildURL'); var parseHeaders = require('./../helpers/parseHeaders'); var transformData = require('./../helpers/transformData'); var isURLSameOrigin = require('./../helpers/isURLSameOrigin'); +var ieVersion = require('./../helpers/ieVersion'); var btoa = window.btoa || require('./../helpers/btoa'); module.exports = function xhrAdapter(resolve, reject, config) { @@ -34,7 +35,7 @@ module.exports = function xhrAdapter(resolve, reject, config) { var xDomain = false; // For IE 8/9 CORS support - if (!isURLSameOrigin(config.url) && window.XDomainRequest) { + if (ieVersion() <= 9 && !isURLSameOrigin(config.url) && window.XDomainRequest) { Adapter = window.XDomainRequest; loadEvent = 'onload'; xDomain = true;