0

Проблема с jQuery: "TypeError: $.getJSON не является функцией"

11

У меня есть следующий кусок кода:

$(document).ready(function () {
    $.getJSON('http://localhost:5000/', function (response) {
        console.log(response);
    });
});

localhost:5000 — это скрипт на Flask/Python, который возвращает JSON в следующем формате:

{
  "data": [
    0, 
    0, 
    0, 

Но я получаю ошибку:

$.getJSON is not a function TypeError: $.getJSON is not a function

Не могли бы вы подсказать, с чего начать разбираться в данной проблеме?

Спасибо!

Правка:

HTML-код:

<!DOCTYPE html>
<html>

<head>
    <script src="https://code.jquery.com/jquery-3.1.1.slim.min.js"></script>
    <script src="lib/main.js"></script>
</head>

<body>
</body>

</html>

Файл lib/main.js — это то место, где находится document.ready.

Спасибо!

5 ответ(ов)

1

Похоже, вы используете "тонкую" версию jQuery, которая не включает метод getJSON, из-за чего вы получаете эту ошибку.

Пожалуйста, используйте полную версию jQuery, доступную по следующей ссылке:

https://code.jquery.com/jquery-3.1.1.min.js

"Тонкая" версия jQuery исключает такие функции, как AJAX, анимационные эффекты и другие.

0

Это происходит довольно часто при миграции кодовой базы с jQuery версии 1.x+ на 3.0+, так как jQuery обновил, устарел или прекратил поддержку некоторых своих API.

Я рекомендую использовать jQuery Migrate, который поможет решить эту проблему, а также другие вопросы.

Вы можете получить его через CDN:

https://cdnjs.com/libraries/jquery-migrate

Если вы используете Gulp/Grunt, вы можете импортировать его в свой проект, выполнив команду:

npm install --save jquery jquery-migrate

Репозиторий на GitHub - https://github.com/jquery/jquery-migrate

Дополнительную информацию о jQuery версии 3.0+ можно прочитать здесь: http://blog.jquery.com/2016/06/09/jquery-3-0-final-released/

0

В вашем коде функция cinta выполняет AJAX-запрос к локальному серверу на http://localhost:5000/, используя библиотеку jQuery. Когда ответ получен, он выводится в консоль. Кроме того, при загрузке документа вы выводите 'yesss' в консоль.

Если ваш сервер написан с использованием Flask на Python и все настроено правильно, то этот код должен работать. Убедитесь, что ваш Flask-приложение запущено на порту 5000 и отвечает на запросы по указанному URL.

Вот несколько вещей, которые стоит проверить, если у вас возникают проблемы:

  1. Сервер работает? Убедитесь, что Flask-приложение действительно запущено и доступно по адресу http://localhost:5000/.

  2. CORS (Cross-Origin Resource Sharing): Если ваш сервер и клиент находятся на разных доменах (например, как в случае с использованием localhost и порта), проверьте, не блокирует ли CORS ваши запросы.

  3. Ошибки в консоли: Проверьте вкладку "Консоль" в инструментах разработчика браузера на наличие ошибок. Это может помочь понять, происходит ли какой-либо сбой.

  4. Формат ответа: Убедитесь, что сервер возвращает корректный JSON-ответ, ожидаемый вашим кодом.

Если всё настроено правильно и ошибок нет, ваш код должен корректно получать данные с сервера и отображать их в консоли.

0

У меня была такая же ошибка в моем коде:

$.getJson("/foo.json")

Проблема заключалась в том, что моя функция на самом деле называется

$.getJSON

А не $.getJson. Убедитесь, что используете правильный регистр!

0

Пожалуйста, используйте полную версию jQuery CDN вместо версии Slim/lite. Slim-версия не включает в себя такие функции, как AJAX и эффекты. Вот пример подключения полной версии:

<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>

Обратите внимание, что в данном примере не используются параметры cross-origin и integrity. Это должно работать, если вы просто хотите подключить jQuery без дополнительных настроек.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь