arnaucube
arnaucube/socketioMEANseedPublic Self-hosted repository
socketioMEANseed/server/node_modules/engine.io-client/lib/xmlhttprequest.js
server/node_modules/engine.io-client/lib/xmlhttprequest.jsRaw
 1// browser shim for xmlhttprequest module
 2
 3var hasCORS = require('has-cors');
 4
 5module.exports = function (opts) {
 6  var xdomain = opts.xdomain;
 7
 8  // scheme must be same when usign XDomainRequest
 9  // http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx
10  var xscheme = opts.xscheme;
11
12  // XDomainRequest has a flow of not sending cookie, therefore it should be disabled as a default.
13  // https://github.com/Automattic/engine.io-client/pull/217
14  var enablesXDR = opts.enablesXDR;
15
16  // XMLHttpRequest can be disabled on IE
17  try {
18    if ('undefined' !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {
19      return new XMLHttpRequest();
20    }
21  } catch (e) { }
22
23  // Use XDomainRequest for IE8 if enablesXDR is true
24  // because loading bar keeps flashing when using jsonp-polling
25  // https://github.com/yujiosaka/socke.io-ie8-loading-example
26  try {
27    if ('undefined' !== typeof XDomainRequest && !xscheme && enablesXDR) {
28      return new XDomainRequest();
29    }
30  } catch (e) { }
31
32  if (!xdomain) {
33    try {
34      return new global[['Active'].concat('Object').join('X')]('Microsoft.XMLHTTP');
35    } catch (e) { }
36  }
37};