Skip to content

Commit

Permalink
Use XMLHttpRequest if supports CORS
Browse files Browse the repository at this point in the history
  • Loading branch information
paulwib committed Feb 20, 2018
1 parent dbd549a commit c7f70db
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 4 deletions.
8 changes: 7 additions & 1 deletion src/eventsource.js
Original file line number Diff line number Diff line change
Expand Up @@ -410,6 +410,12 @@
start(this, url, options);
}

function getBestTransport() {
return XMLHttpRequest && "withCredentials" in XMLHttpRequest.prototype
? XMLHttpRequest
: XDomainRequest;
}

function start(es, url, options) {
url = String(url);
var withCredentials = options != undefined && Boolean(options.withCredentials);
Expand All @@ -421,7 +427,7 @@
var retry = initialRetry;
var wasActivity = false;
var headers = options != undefined && options.headers != undefined ? JSON.parse(JSON.stringify(options.headers)) : undefined;
var CurrentTransport = options != undefined && options.Transport != undefined ? options.Transport : (XDomainRequest != undefined ? XDomainRequest : XMLHttpRequest);
var CurrentTransport = options != undefined && options.Transport != undefined ? options.Transport : getBestTransport();
var transport = new XHRTransport(new CurrentTransport());
var timeout = 0;
var currentState = WAITING;
Expand Down
2 changes: 1 addition & 1 deletion src/eventsource.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 8 additions & 2 deletions tests/eventsource.js
Original file line number Diff line number Diff line change
Expand Up @@ -410,18 +410,24 @@
start(this, url, options);
}

function getBestTransport() {
return XMLHttpRequest && "withCredentials" in XMLHttpRequest.prototype
? XMLHttpRequest
: XDomainRequest;
}

function start(es, url, options) {
url = String(url);
var withCredentials = options != undefined && Boolean(options.withCredentials);

var initialRetry = clampDuration(1000);
var heartbeatTimeout = clampDuration(45000);
var heartbeatTimeout = options != undefined && options.heartbeatTimeout != undefined ? parseDuration(options.heartbeatTimeout, 45000) : clampDuration(45000);

var lastEventId = "";
var retry = initialRetry;
var wasActivity = false;
var headers = options != undefined && options.headers != undefined ? JSON.parse(JSON.stringify(options.headers)) : undefined;
var CurrentTransport = options != undefined && options.Transport != undefined ? options.Transport : (XDomainRequest != undefined ? XDomainRequest : XMLHttpRequest);
var CurrentTransport = options != undefined && options.Transport != undefined ? options.Transport : getBestTransport();
var transport = new XHRTransport(new CurrentTransport());
var timeout = 0;
var currentState = WAITING;
Expand Down

0 comments on commit c7f70db

Please sign in to comment.