JavaScript AJAX Basics (retiring) Programming AJAX Processing JSON Data

Ron Gootman
Ron Gootman
22,793 Points

Getting Uncaught RangeError: Invalid String Length at this part: statusHTML += '<li class="out">';

var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
  if (xhr.readyState === 4) {
    var employees = JSON.parse(xhr.responseText); // from JSON to JavaScript Objects
    console.log(typeof employees);
    var statusHTML = '<ul class="bulleted">';
    for (var i=0; i<employees.length; i=+1) {
      // running through the list of employees
     if (employees[i].inoffice === true) {
        statusHTML += '<li class="in">';
      } else {
        statusHTML += '<li class="out">';
      }
      statusHTML += employees[i].name;
      statusHTML += '</li>';
    }
    statusHTML += '</ul>';
    document.getElementById('employeeList').innerHTML = statusHTML;
  }
};
xhr.open('GET', 'data/employees.json');
xhr.send(); 

tried to look it up at the Chrome console and I got the "Uncaught RangeError: Invalid String Length" error at line 12 which is

  statusHTML += '<li class="out">';

Not quite sure what went wrong here.

2 Answers

Nattapol Kamolbal
Nattapol Kamolbal
15,526 Points

I think you have a typo at

for (var i=0; i<employees.length; i=+1) {

It should be.

i+=1
Ron Gootman
Ron Gootman
22,793 Points

Coding can get so cruel sometimes... such a tiny error costs hours of trying to figure it out on my side with no success...

THANK YOU for identifying this error in my code :)