From 4115228ad133377034542f96b4517303f457c858 Mon Sep 17 00:00:00 2001 From: Ivan Tam Date: Mon, 21 Sep 2015 18:25:36 -0700 Subject: [PATCH] fix(http) Force content type to be 'text/plain' This will let CORS requests be marked as a simple request and therefore not require a preflight request. While Chrome was using text/plain as the content-type, Safari defaults to application/xml and therefore forcing a non-simple CORS request. --- src/loggly.tracker.js | 1 + src/loggly.tracker.min.js | 2 +- src/loggly.tracker.min.map | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/loggly.tracker.js b/src/loggly.tracker.js index bcdd5c8..6f49d14 100644 --- a/src/loggly.tracker.js +++ b/src/loggly.tracker.js @@ -154,6 +154,7 @@ //creating an asynchronous XMLHttpRequest var xmlHttp = new XMLHttpRequest(); xmlHttp.open('POST', this.inputUrl, true); //true for asynchronous request + xmlHttp.setRequestHeader('Content-Type', 'text/plain'); xmlHttp.send(JSON.stringify(data)); } catch (ex) { diff --git a/src/loggly.tracker.min.js b/src/loggly.tracker.min.js index f5d2442..4ef746c 100644 --- a/src/loggly.tracker.min.js +++ b/src/loggly.tracker.min.js @@ -1,2 +1,2 @@ -!function(a,b){function c(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){var b=16*Math.random()|0,c="x"==a?b:3&b|8;return c.toString(16)})}function d(){this.key=!1,this.sendConsoleErrors=!1,this.tag="jslogger",this.useDomainProxy=!1}function e(a,b){a.key=b,a.setSession(),i(a)}function f(a,b){a.tag=b}function g(a,b){a.useDomainProxy=b,i(a)}function h(b,c){if(b.sendConsoleErrors=c,b.sendConsoleErrors===!0){var d=a.onerror;a.onerror=function(c,e,f,g){b.push({category:"BrowserJsException",exception:{message:c,url:e,lineno:f,colno:g}}),d&&"function"==typeof d&&d.apply(a,arguments)}}}function i(b){1==b.useDomainProxy?b.inputUrl=j+a.location.host+"/"+LOGGLY_PROXY_DOMAIN+"/inputs/"+b.key+"/tag/"+b.tag:b.inputUrl=j+(b.logglyCollectorDomain||k)+"/inputs/"+b.key+"/tag/"+b.tag}var j="http"+("https:"===b.location.protocol?"s":"")+"://",k="logs-01.loggly.com",l="logglytrackingsession",m=l.length+1;LOGGLY_PROXY_DOMAIN="loggly",d.prototype={setSession:function(a){a?(this.session_id=a,this.setCookie(this.session_id)):this.session_id||(this.session_id=this.readCookie(),this.session_id||(this.session_id=c(),this.setCookie(this.session_id)))},push:function(a){var b=typeof a;if(a&&("object"===b||"string"===b)){var c=this;if("string"===b)a={text:a};else{if(a.logglyCollectorDomain)return void(c.logglyCollectorDomain=a.logglyCollectorDomain);if(void 0!==a.sendConsoleErrors&&h(c,a.sendConsoleErrors),a.tag&&f(c,a.tag),a.useDomainProxy&&g(c,a.useDomainProxy),a.logglyKey)return void e(c,a.logglyKey);if(a.session_id)return void c.setSession(a.session_id)}c.key&&c.track(a)}},track:function(b){b.sessionId=this.session_id;try{var c=new XMLHttpRequest;c.open("POST",this.inputUrl,!0),c.send(JSON.stringify(b))}catch(d){a&&a.console&&"function"==typeof a.console.log&&(console.log("Failed to log to loggly because of this exception:\n"+d),console.log("Failed log data:",b))}},readCookie:function(){var a=b.cookie,c=a.indexOf(l);if(0>c)return!1;var d=a.indexOf(";",c+1);return d=0>d?a.length:d,a.slice(c+m,d)},setCookie:function(a){b.cookie=l+"="+a}};var n=a._LTracker,o=new d;if(n&&n.length){var p=0,q=n.length;for(p=0;q>p;p++)o.push(n[p])}a._LTracker=o,a.LogglyTracker=d}(window,document); +!function(a,b){function c(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){var b=16*Math.random()|0,c="x"==a?b:3&b|8;return c.toString(16)})}function d(){this.key=!1,this.sendConsoleErrors=!1,this.tag="jslogger",this.useDomainProxy=!1}function e(a,b){a.key=b,a.setSession(),i(a)}function f(a,b){a.tag=b}function g(a,b){a.useDomainProxy=b,i(a)}function h(b,c){if(b.sendConsoleErrors=c,b.sendConsoleErrors===!0){var d=a.onerror;a.onerror=function(c,e,f,g){b.push({category:"BrowserJsException",exception:{message:c,url:e,lineno:f,colno:g}}),d&&"function"==typeof d&&d.apply(a,arguments)}}}function i(b){1==b.useDomainProxy?b.inputUrl=j+a.location.host+"/"+n+"/inputs/"+b.key+"/tag/"+b.tag:b.inputUrl=j+(b.logglyCollectorDomain||k)+"/inputs/"+b.key+"/tag/"+b.tag}var j="http"+("https:"===b.location.protocol?"s":"")+"://",k="logs-01.loggly.com",l="logglytrackingsession",m=l.length+1,n="loggly";d.prototype={setSession:function(a){a?(this.session_id=a,this.setCookie(this.session_id)):this.session_id||(this.session_id=this.readCookie(),this.session_id||(this.session_id=c(),this.setCookie(this.session_id)))},push:function(a){var b=typeof a;if(a&&("object"===b||"string"===b)){var c=this;if("string"===b)a={text:a};else{if(a.logglyCollectorDomain)return void(c.logglyCollectorDomain=a.logglyCollectorDomain);if(void 0!==a.sendConsoleErrors&&h(c,a.sendConsoleErrors),a.tag&&f(c,a.tag),a.useDomainProxy&&g(c,a.useDomainProxy),a.logglyKey)return void e(c,a.logglyKey);if(a.session_id)return void c.setSession(a.session_id)}c.key&&c.track(a)}},track:function(b){b.sessionId=this.session_id;try{var c=new XMLHttpRequest;c.open("POST",this.inputUrl,!0),c.setRequestHeader("Content-Type","text/plain"),c.send(JSON.stringify(b))}catch(d){a&&a.console&&"function"==typeof a.console.log&&(console.log("Failed to log to loggly because of this exception:\n"+d),console.log("Failed log data:",b))}},readCookie:function(){var a=b.cookie,c=a.indexOf(l);if(0>c)return!1;var d=a.indexOf(";",c+1);return d=0>d?a.length:d,a.slice(c+m,d)},setCookie:function(a){b.cookie=l+"="+a}};var o=a._LTracker,p=new d;if(o&&o.length){var q=0,r=o.length;for(q=0;r>q;q++)p.push(o[q])}a._LTracker=p,a.LogglyTracker=d}(window,document); //# sourceMappingURL=loggly.tracker.min.map \ No newline at end of file diff --git a/src/loggly.tracker.min.map b/src/loggly.tracker.min.map index d6708d7..6122f2f 100644 --- a/src/loggly.tracker.min.map +++ b/src/loggly.tracker.min.map @@ -1 +1 @@ -{"version":3,"file":"loggly.tracker.min.js","sources":["loggly.tracker.js"],"names":["window","document","uuid","replace","c","r","Math","random","v","toString","LogglyTracker","this","key","sendConsoleErrors","tag","useDomainProxy","setKey","tracker","setSession","setInputUrl","setTag","setDomainProxy","setSendConsoleError","_onerror","onerror","msg","url","line","col","push","category","exception","message","lineno","colno","apply","arguments","inputUrl","LOGGLY_INPUT_PREFIX","location","host","LOGGLY_PROXY_DOMAIN","logglyCollectorDomain","LOGGLY_COLLECTOR_DOMAIN","protocol","LOGGLY_SESSION_KEY","LOGGLY_SESSION_KEY_LENGTH","length","prototype","session_id","setCookie","readCookie","data","type","self","text","undefined","logglyKey","track","sessionId","xmlHttp","XMLHttpRequest","open","send","JSON","stringify","ex","console","log","cookie","i","indexOf","end","slice","value","existing","_LTracker","eLength"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"loggly.tracker.min.js","sources":["loggly.tracker.js"],"names":["window","document","uuid","replace","c","r","Math","random","v","toString","LogglyTracker","this","key","sendConsoleErrors","tag","useDomainProxy","setKey","tracker","setSession","setInputUrl","setTag","setDomainProxy","setSendConsoleError","_onerror","onerror","msg","url","line","col","push","category","exception","message","lineno","colno","apply","arguments","inputUrl","LOGGLY_INPUT_PREFIX","location","host","LOGGLY_PROXY_DOMAIN","logglyCollectorDomain","LOGGLY_COLLECTOR_DOMAIN","protocol","LOGGLY_SESSION_KEY","LOGGLY_SESSION_KEY_LENGTH","length","prototype","session_id","setCookie","readCookie","data","type","self","text","undefined","logglyKey","track","sessionId","xmlHttp","XMLHttpRequest","open","setRequestHeader","send","JSON","stringify","ex","console","log","cookie","i","indexOf","end","slice","value","existing","_LTracker","eLength"],"mappings":"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"} \ No newline at end of file