Include Network Payloads

For privacy reasons, TrackJS doesn’t automatically record the request or response payloads from network errors. However, if that’s something you wish to do, the following code provides a general outline of how that might be accomplished.

First, you’ll want to prevent TrackJS from capturing network errors, as we’ll build a custom handler to catch them.

window.TrackJS && TrackJS.install({
    token: "{TOKEN}",
    network: { error: false }
});
Disable Network Errors
import { TrackJS } from "trackjs";
TrackJS.install({
    token: "{TOKEN}",
    network: { error: false }
});
Disable Network Errors
<script>
window._trackJs = {
    token: "{TOKEN}",
    network: { error: false }
};
</script>
<script src="https://cdn.trackjs.com/releases/current/tracker.js"></script>
Disable Network Errors

Then, we’ll add a custom error handler to your AJAX system. This can vary quite a bit based on your framework. Here is an example using jQuery:

// Attach a callback for when network errors occur
$(document).ajaxError(function(evt, xhr, opts, message) {
    if (!window.TrackJS) { return; } // Safety Check

    // Log the relevant info to the Telemetry Console
    TrackJS.console.log({
        message: message,
        method: opts.type,
        url: opts.url,
        status: xhr.status,
        statusText: xhr.statusText,
        request: opts.data,
        response: xhr.responseText
    });

    // Record the Error
    TrackJS.track(xhr.status + " " + xhr.statusText + ": " + opts.type + " " + url);
});
Disable Network Errors