Skip to content

Instantly share code, notes, and snippets.

@headquarters
Created July 18, 2013 14:03
Show Gist options
  • Save headquarters/6029579 to your computer and use it in GitHub Desktop.
Save headquarters/6029579 to your computer and use it in GitHub Desktop.
Log JavaScript errors in a server-side log file
/**
* Logs JavaScript errors via an AJAX request.
* Written in pure JavaScript so it does not have any dependencies.
*/
window.onerror = function(errorMessage, url, lineNumber){
var ajaxUrl = "/log-js-errors?t=" + (new Date()).getTime();
var data = {
errorMessage: errorMessage,
file: url,
lineNumber: lineNumber,
referrer: document.referrer,
userAgent: navigator.userAgent
};
var dataString = "";
for(var key in data){
dataString += "&" + key + "=" + escape(data[key]);
}
var httpRequest;
//https://developer.mozilla.org/en-US/docs/AJAX/Getting_Started
if (window.XMLHttpRequest) { // Mozilla, Safari, ...
httpRequest = new XMLHttpRequest();
} else if (window.ActiveXObject) { // IE
try {
httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try {
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {}
}
}
httpRequest.onreadystatechange = function(){ /* get data back */ };
httpRequest.open("POST", ajaxUrl);
httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
httpRequest.send(dataString);
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment