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

Uncaught ReferenceError: EXMLHttpRequest is not defined at (index):9

Hello!

I am following along with the "A Simple AJAX Example" and as far as I can see my code is exactly the same as the teacher's, but it is not working. I don't see the same message dynamically displayed with AJAX. In the console, I am getting the error message: Uncaught ReferenceError: EXMLHttpRequest is not defined at (index):9.

Can anyone help?

Snapshot to my code: https://w.trhou.se/ujujyd3tl2

Thanks!

1 Answer

Simon Coates
Simon Coates
8,377 Points

EXMLHttpRequest should probably be XMLHttpRequest. But i think there's another error after that. Commenting out one of the calls to send seems to make things work. So it seemed to work with:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <link href='//fonts.googleapis.com/css?family=Varela+Round' rel='stylesheet' type='text/css'>
  <link rel="stylesheet" href="css/main.css">
  <title>AJAX with JavaScript</title>
  <script>
    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function () {
      if (xhr.readyState === 4) {
        document.getElementById('ajax').innerHTML = xhr.responseText;
      }
    };
    xhr.open('GET', 'sidebar.html');
    function sendAJAX() {
      xhr.send();
      document.getElementById('load').style.display = "none";
    }

    //xhr.send(); // HERE
  </script>
</head>
<body>
  <div class="grid-container centered">
    <div class="grid-100">
      <div class="contained">
        <div class="grid-100">
          <div class="heading">
            <h1>Bring on the AJAX</h1>
            <button id="load" onclick="sendAJAX()">Bring it!</button>
          </div>
          <div id="ajax">

          </div>
        </div>
      </div>
    </div>
  </div>
</body>
</html>

Thank you so much, Simon! That was an easier fix than I expected! I tried it in my workspace and it works! :)