Живая проверка с помощью метода get jquery - только подготовка к состоянию 1

Я пытаюсь выполнить проверку в реальном времени при регистрации, чтобы пользователи могли видеть, было ли уже занято их имя пользователя или нет. Каждый раз, когда они печатают, я использую jquery для отправки запроса на получение моему контроллеру, который запускает запрос, чтобы проверить, занято ли их имя. Он возвращает «0», если это не так, и «1», если это так. Когда я запускаю метод get, я получаю только состояние готовности 1. Однако внутри этого readyState я вижу, что responseText, который он дает, является правильным. Я уже пробовал получить доступ к responseText, но безуспешно. Прикреплю картинку лога.Изображение журнала, которое я получаю в ответ

   $(document).ready(() => {
    $("#usernameTaken").hide();
    function checkPassword() {
        let usernameGiven = $("#username").val();
        return $.get( "/getString", {username: usernameGiven})
            .done((data) => data)


    }

    $('#username').on('input', () => {
        console.info(checkPassword());

    });

});

Мой Контроллер

@RestController
public class TestController {
    private Users userRepo;

    public TestController(Users userRepo) {
        this.userRepo = userRepo;
    }

    @GetMapping("/getString")
    public String getString(@RequestParam(name = "username") String username) {
        String count = String.valueOf(userRepo.checkForUsername(username));
        return JSONObject.quote(count);


    }
}

Что вы видите в консоли для сетевых запросов?

ugh StackExchange 27.10.2018 18:34

Извините, но я не могу вас достать. Чего вы хотите достичь и с какой проблемой сталкиваетесь? Ожидаете ли вы ценности от вашего ответа от веб-сервиса в переменной readyState?

Jignesh M. Khatri 27.10.2018 18:44

мой контроллер возвращает строку, которая позволяет мне узнать, занято ли это имя уже или нет. Я хочу вытащить responseText, который вы можете видеть в журнале, который я связал с моим вопросом og. Однако я не могу этого сделать.

matt 27.10.2018 18:46

Вы можете увидеть правильный ответ вашего контроллера в responseText (на прикрепленном вами изображении журнала). Это строка "0". Но jQuery.get асинхронный, т.е. вы получаете данные в обработчике .done(...); но вы используете результат checkPassword синхронно.

djlauk 27.10.2018 18:51

Большое спасибо, я считаю, что исправил это, просто добавив .then () после вызова функции checkPassword при изменении ввода.

matt 27.10.2018 18:54

@matt, который работает, потому что jQuery.get возвращает jqXHR, поэтому в основном то, что jQuery вызывает отложенный. Таким образом, вы используете API асинхронно, но .then вызывается всегда в случае неудачи или успеха. Проверьте методы .done и .fail, чтобы различать их. (API jQuery deferred немного отличается от Обещания JavaScript.)

djlauk 27.10.2018 19:01
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
6
18
0

Другие вопросы по теме