Неперехваченная функция ReferenceError не определена

У меня есть внешний файл js с одной функцией, которую я пытаюсь протестировать. Я не могу заставить функцию вызываться из onclick.

У меня была функция инициализации, и я удалил вызов к ней и просто напрямую вызвал функцию loadJSON, но независимо от того, что я делаю, я получаю справочную ошибку.

Я изучал эти вопросы. Неперехваченное исключение: ReferenceError: Неопределенная переменная: $

Функция не определена — необработанная ошибка ссылки

ни то, ни другое не помогло.

function loadJSON(){
var xobj = new XMLHttpRequest();

// must set the mime type 
xobj.overrideMimeType("application/json");

// Open the JSON file
xobj.open('GET', 'json/data.json', true);

xobj.onreadystatechange=function(){
    if(xobj.readyState == 4 && xobj.status == "200"){
        // Required use of an anonymous callback as 
        // .open will NOT return a value but simply 
        // returns undefined in asynchronous mode
        console.log(xobj.responseText);
    }
};
xobj.send(null);
}

https://codepen.io/awschneider-dev/pen/LKKxyq?editors= 1010

см. codepen, например

Все, что я хочу, это чтобы JavaScript извлекал Json, после чего я мог бы начать сохранять его в объекте JavaScript, чтобы я мог динамически начать строить диаграмму d3 с данными. Я использую live-сервер с Node.JS, поэтому я могу выполнить запрос xml в файле JSON, поэтому я знаю, что это не проблема.

любая помощь приветствуется.

Спасибо!

**** РЕДАКТИРОВАТЬ - Плохо, у меня изначально был () после loadJSON, но я удалил его как последнюю попытку, просто чтобы посмотреть, сработает ли он. Я поправлю ручку. Мои извинения"****

**** РЕДАКТИРОВАТЬ 2. Я переместил скрипт, чтобы он был встроенным, и когда я выполняю его в NodeJS Live-Server, строка console.log(xobj.responseText); возвращает весь исходный код для html-страницы. Это интересно! Что, черт возьми, здесь происходит? ****

**** РЕДАКТИРОВАТЬ 3 - Добавлен скриншот для Techie_28. Когда я нажимаю на ошибку «Неожиданный токен ‹» для main.js, все, что он делает, показывает весь исходный код для html-страницы, как будто html-страница каким-то образом сбрасывается в файл .js. ****

**** РЕДАКТИРОВАТЬ 4 — Добавлен снимок экрана, показывающий, что появляется при нажатии на ошибку «Неожиданный токен». Я нажимаю на ссылку на main.js, и все, что она делает, это показывает мне страницу index.html, как будто html-страница каким-то образом сбрасывается в файл .js. ****

скриншот консоли

Скриншот того, что показывает консоль, если я нажму на непредвиденную ошибку токена


person Adam Schneider    schedule 15.07.2019    source источник
comment
Вызов функции onclick="loadJSON" должен быть onclick="loadJSON()".   -  person random    schedule 15.07.2019
comment
прочитайте мою правку. Я удалил его просто для тестирования, я забыл добавить его обратно, прежде чем опубликовать свой вопрос. Извините за путаницу. Починю свою ручку, чтобы отразить это.   -  person Adam Schneider    schedule 15.07.2019
comment
Это может быть связано с местом, где вы определили функцию, или с именем loadJSON, которое где-то было переопределено.   -  person techie_28    schedule 15.07.2019
comment
так как это было только мое тестирование, то, что вы видите в моем CodePen, на самом деле все, что у меня есть. У меня было это в гораздо более крупном проекте, но я взял эту часть только для того, чтобы проверить и посмотреть, в чем проблема, и для меня это просто не имеет никакого смысла. Это что-то с живым сервером Node.JS, чего я не понимаю?   -  person Adam Schneider    schedule 15.07.2019
comment
Как так @techie_28 ?   -  person Adam Schneider    schedule 15.07.2019
comment
Пожалуйста, опубликуйте на скриншоте, что ваш браузер console говорит, когда вы нажимаете кнопку. Кнопка & loadJSON может не существовать в той же области. Также проверьте синтаксический анализ или другие ошибки при загрузке страницы, которые также будут видны в console. используйте F12 для вызова и обновления страницы console должно быть записана какая-то ошибка JS.   -  person techie_28    schedule 16.07.2019
comment
добавил скриншот   -  person Adam Schneider    schedule 16.07.2019