Post Data with the JavaScript XMLHttpRequest Method url not found

Post Data with the JavaScript XMLHttpRequest Method url not found
0

#1

Tell us what’s happening:

where to post the requet . I can’t find the varibale of url. any helps are appreciated.

Your code so far


<script>
  document.addEventListener('DOMContentLoaded',function(){
    document.getElementById('sendMessage').onclick=function(){
    
      var userName=document.getElementById('name').value;
      // Add your code below this line
      var req = new XMLHttpRequest();
      req.open("POST","/json/cats.json",true);
      req.setRequestHeader("Content-Type","text/plain");
      req.onreadystatechange = function(){
        if(req.readyState==4&&req.status==200){
          document.getElementsByClassName("message")[0].innerHTML = req.responseText;
        }
      }
      req.send(userName);
      // Add your code above this line
    };
  });
</script>
<style>
  body {
    text-align: center;
    font-family: "Helvetica", sans-serif;
  }
  h1 {
    font-size: 2em;
    font-weight: bold;
  }
  .box {
    border-radius: 5px;
    background-color: #eee;
    padding: 20px 5px;
  }
  button {
    color: white;
    background-color: #4791d0;
    border-radius: 5px;
    border: 1px solid #4791d0;
    padding: 5px 10px 8px 10px;
  }
  button:hover {
    background-color: #0F5897;
    border: 1px solid #0F5897;
  }
</style>
<h1>Cat Friends</h1> 
<p class="message box">
  Reply from Server will be here
</p>
<p>
  <label for="name">Your name:
    <input type="text" id="name"/>
  </label>
  <button id="sendMessage">
    Send Message
  </button>
</p>

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36.

Link to the challenge:
https://learn.freecodecamp.org/data-visualization/json-apis-and-ajax/post-data-with-the-javascript-xmlhttprequest-method


#2

I think the URL is stored in a variable called “url”, like in the example, try that.


#3

I can’t understand what is the solution. I know the url should be the variable with the value of the URL. But I can’t see where it is assigned or for that matter what value to assign to it.


#4

I think it is defined by the testing framework, behind the scenes. Don’t worry about it.


#5

Apparently it’s not. There is no response text showing up in the ‘message box’. In addition the tests are messed up. As someone else pointed out when you remove the ‘req =’ in front of the new XMLHttpRequest, the tests still pass. That is when the variable req is undefined so that the subsequent code is doing nothing.
Somebody should worry about it. If you need someone to clean up this whole D3 section, I would be happy to do it.


#6

Have you tried this lesson? It definitely does not issue a network request. It does if you actually define the url variable. Never-the-less it passes the tests even when the req variable is undefined! This excercise needs to be fixed. It is an example of “how not to program” but the student doesn’t know that and it only serves to confuse.


#7

This has been discussed before as far back as March of 2017 (see thread below).

If you have an idea of how this challenge could be improved, you could add some additional comments to a more recent issue created about the same thing. Even better, maybe you could create a PR to change the verbiage, code, and/or tests to better reflect what you think should be changed.


#8

Great! Thanks for the links. I didn’t know you were on github. I’ll get on it.


#9

Lately, I am everywhere. :wink: