Ошибка типа: $ .getJSON не является функцией - PullRequest
0 голосов
/ 10 октября 2018

Я хочу показать индикатор выполнения, пока сервер обрабатывает формульные данные, которые были опубликованы ранее.Клиент может проверить ход выполнения по этому URL: http://127.0.0.1:8000/loader/progress. Следующий код отлично работает, и консоль показывает процент за один раз:

$.get('http://127.0.0.1:8000/loader/progress', function(data){
    console.log(data)
});

Теперь я хочу отправить запрос getJSONпо этому адресу до тех пор, пока значение <100%.Как мне это сделать?Следующий код выдает это сообщение об ошибке: </p>

Uncaught TypeError: $ .getJSON не является функцией

var updateProgress = function(){
    $.getJSON('http://127.0.0.1:8000/loader/progress', function(data)
    {
        if(data.percentageProcessed != 100) {
            document.getElementById('progressBar').value = data.percentageProcessed;
            setInterval(updateProgress, 2000);
        } else {
            document.getElementById('progressBar').value = 100;
        }
    });
}
updateProgress();

Я загружаю jQuery после открытия моего HTML-документа со следующим источником: https://code.jquery.com/jquery-3.3.1.min.js

Это все то же самое со следующим кодом.Вот сообщение об ошибке: TypeError: $ .ajax не является функцией:

var doAjax = function() {
    $.ajax({
        method: 'GET',
        url: 'http://127.0.0.1:8000/loader/progress',
        success: function(data){
            if (data.percentageProcessed != 100) {
                document.getElementById('progressBar').value = data.percentageProcessed;
                doAjax();
            } else {
                document.getElementById('progressBar').value = 100;
            }
        }
    });
}
doAjax();

Спасибо за вашу помощь.

Редактировать: Это мой импорт jQuery:

<body>
        <script
            src="https://code.jquery.com/jquery-3.3.1.min.js"
            integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
            crossorigin="anonymous">
        </script>
...
</body>

1 Ответ

0 голосов
/ 30 января 2019

Основной причиной было: два импорта jQuery на одной странице.Решение: удалите один из двух импортов jQuery.[уборка]

...