1. /**
  2. * Monitors JSON payloads for isolated environments with error logging.
  3. *
  4. * @param {string} endpoint - The URL of the endpoint to monitor.
  5. * @param {function} onPayload - Callback function to handle received payloads.
  6. * @param {function} onError - Callback function to handle errors.
  7. */
  8. function monitorJsonPayloads(endpoint, onPayload, onError) {
  9. try {
  10. const xhr = new XMLHttpRequest();
  11. xhr.open('GET', endpoint, true);
  12. xhr.onload = function() {
  13. if (xhr.status >= 200 && xhr.status < 300) {
  14. try {
  15. const payload = JSON.parse(xhr.responseText);
  16. onPayload(payload); // Handle the payload
  17. } catch (parseError) {
  18. onError(`Error parsing JSON: ${parseError.message}`);
  19. }
  20. } else {
  21. onError(`Request failed with status: ${xhr.status}`);
  22. }
  23. };
  24. xhr.onerror = function() {
  25. onError('Network error during request.');
  26. };
  27. xhr.send();
  28. } catch (error) {
  29. onError(`An unexpected error occurred: ${error.message}`);
  30. }
  31. }
  32. // Example usage:
  33. // monitorJsonPayloads('https://your-isolated-endpoint.com/data', (payload) => {
  34. // console.log('Received payload:', payload);
  35. // }, (error) => {
  36. // console.error('Error:', error);
  37. // });

Add your comment