Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

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,486 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?

ellie adam
ellie adam
26,376 Points

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();