Как работает метод $.getJSON() в JavaScript?

Столкнулся с таким кодом и не могу понять принцип работы:

$.getJSON(apiUrl, requestData,
    function (responseData) {
        $("#statusField").removeClass("errorStyle").addClass("successStyle");
        if (responseData.status == '200' || responseData.status > 0 && responseData.status < 10) {
            window.location = responseData.nextPage;
            return;
        } else if (responseData.status == '404' || responseData.status == '401' || responseData.status == '403') {
            $("#errorMessage").show().html("неверные данные пользователя");
            $("#userPassword").val('');
            $("#captchaInput").val('');
            $("#userPassword").focus();
        } else if (responseData.status == '422') {
            $("#errorMessage").show().html("неправильный код подтверждения");
            $("#captchaInput").val('');
            $("#captchaInput").focus();
        }

Не понимаю несколько вещей. Что за метод $.getJSON и как он работает? Это же не стандартный JavaScript, правильно? И еще вопрос по function(responseData) - каким образом туда передаются данные responseData? Буду благодарен за разъяснения.

Да, это jQuery, не чистый JS. $.getJSON — просто обёртка над XMLHttpRequest для удобства. Сервер берёт твой apiUrl с requestData, обрабатывает и шлёт JSON назад. jQuery сам парсит JSON в обычный JS-объект и суёт в responseData. Дальше ты работаешь с responseData.status. Кстати, что за API? По статусам смахивает на авторизацию.

Это классический jQuery метод для GET-запросов с JSON. Работает как обычный fetch(), просто синтаксис другой. responseData появляется потому что jQuery сам парсит JSON от сервера и отдаёт готовый объект в колбэк. Если сервер вернёт кривой JSON - получишь ошибку. Сейчас лучше fetch использовать, но суть та же.

$.getJSON — это jQuery, не чистый JavaScript. Метод делает AJAX-запрос и ждёт JSON в ответ. Первый параметр — URL, второй — данные, третий — колбэк.

Когда сервер отвечает, jQuery сам парсит JSON и передаёт готовый объект в твою функцию как responseData. Твой код проверяет поле status в ответе — если всё ок, перенаправляет, если нет — показывает ошибки.