JSON APIs and Ajax: Get JSON with the JavaScript XMLHttpRequest Method

Tell us what’s happening:

Your code so far

document.addEventListener('DOMContentLoaded', function(){
  document.getElementById('getMessage').onclick = function(){
    // Add your code below this line
const req = new XMLHttpRequest();
req.open("GET", '/json.cats.json', true);
req.onload = function() {
const json = JSON.parse(req.responseText);
document.getElementsByClassName('message')[0].innerHTML = JSON.stringify(json);

    // Add your code above this line

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;

<h1>Cat Photo Finder</h1>
<p class="message box">
The message will go here
<button id="getMessage">
  Get Message

Your browser information:

User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:76.0) Gecko/20100101 Firefox/76.0.

Challenge: Get JSON with the JavaScript XMLHttpRequest Method

Link to the challenge:

Why isn’t my code passing?

I’m getting this error:
Your code should use the open method to initialize a "GET" request to the freeCodeCamp Cat Photo API.

And when I press the “Get Message” button, it says

SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data

The JSON link you’re trying to open seems to have a slight formatting typo.

1 Like

Whoops, I got it. Thanks!