Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

JavaScript AJAX Basics (retiring) Programming AJAX Check for the correct ready state

Add a conditional statement inside the onreadystatechange event handler that tests to make sure the server has sent back

I believe that I only have part of the puzzle here, not sure what to do next. Any contribution would be greatly appreciated.

app.js
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() { if (xhr.readystate===4&& xhr.status===200){

};
xhr.open('GET', 'sidebar.html');
xhr.send();
index.html
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>AJAX with JavaScript</title>
  <script src="app.js"></script>
</head>
<body>
  <div id="main">
    <h1>AJAX!</h1>
  </div>
  <div id="sidebar"></div>
</body>
</html>

5 Answers

Kelly von Borstel
Kelly von Borstel
28,880 Points

The code is missing closing bracket after function, and readystate should be readyState, with uppercase S -- like this:

var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() { 
  if (xhr.readyState === 4 && xhr.status === 200) {
  };
};
xhr.open('GET', 'sidebar.html');
xhr.send();

Hello Kelly,

Thank you for this response, it was very helpful! I wasn't paying close enough attention to the event handler. Thanks again!

Justin

Tom Nguyen
Tom Nguyen
33,500 Points

This is what I used to pass the challenge

app.js
var xhr = new XMLHttpRequest();
  xhr.onreadystatechange = function() {
    if (xhr.readyState === 4){  // 4 means the readystate has send everything that it will send
      if (xhr.status === 200){
        document.getElementById('sidebar').innerHTML = xhr.responseText;
      }
    }
};
xhr.open('GET', 'sidebar.html');
xhr.send();
Volodymyr Rusnyk
Volodymyr Rusnyk
9,657 Points

ar xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr.status === 200) { }; xhr.open('GET', 'sidebar.html'); xhr.send();

I wrote the same code and it doesn’t work. It shows: Bummer: There was an error with your code: SyntaxError: Parse error What is wrong with code?

var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr.status === 200) {

};

xhr.open('GET', 'sidebar.html'); xhr.send(); };

Raynaldo Joseph
Raynaldo Joseph
8,187 Points

var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { if (xhr.readyState === 4) { if (xhr.status === 200) { } }; }; xhr.open('GET', 'sidebar.html'); xhr.send();