Авторизуйтесь, используя Jquery и Json

0

В настоящее время у меня есть форма входа в систему, которая будет отправлять данные JSON (имя пользователя и пароль) на мой сервер api, и сервер отправит обратно данные JSON (имя пользователя и баланс) обратно на мою веб-страницу.

Мой HTML-код:

<input type="text" name="username" id="username" class="text" maxlength="30" />
<br />
<input type="password" name="password" id="password" class="text" maxlength="30" />
<br />
<input type="submit" name="btnSubmit" id="btnSubmit" />

Мой сценарий jQuery:

    $(document).ready(function () {
    $("#btnSubmit").click(function () {
        //collect userName and password entered by users
        var userName = $("#username").val();
        var password = $("#password").val();

        auth(userName, password);
    });
});

//authenticate function to make ajax call
function auth(userName, password) {
    $.ajax
    ({
        type: "POST",
        //SEND TO MY SERVER URL
        url: "http:myserverlocationurl.com",
        dataType: 'json',
        async: false,
        data: '{"userName": "' + userName + '", "password" : "' + password + '"}',
        success: function () {

            //???????????????????????
        }
    })
}

Мой вопрос связан с '??????????' вышеперечисленное. Как я могу инкапсулировать/отображать данные json, которые отправляются с сервера и на мою веб-страницу (либо в виде всплывающего окна, но НИЧЕГО будет работать, пока я это вижу).

Спасибо, и любая помощь будет очень признательна.

  • 1
    Зависит от того, как выглядит ответ. В общих чертах, вы можете предупреждать информацию или создавать элементы DOM, содержащие информацию, и добавлять их на страницу. В качестве примечания, как правило, не рекомендуется создавать строки json путем объединения строк. Создайте объект javascript, затем вызовите JSON.stringify() если вам нужно.
  • 0
    Могу ли я получить пример того, как это сделать? Как использовать stringify ()? Я новичок в JSON. Также я хочу, чтобы мой ответ был просто бдительным. НО я не знаю как это сделать :(
Показать ещё 4 комментария
Теги:
username

3 ответа

1
$.ajax
({
    type: "POST",
    //SEND TO MY SERVER URL
    url: "http:myserverlocationurl.com",
    dataType: 'json',
    async: false,
    data: '{"userName": "' + userName + '", "password" : "' + password + '"}',
    success: function (jsonResponse) {

        resp = parseJSON(jsonResponse);

        alert(resp);
    }
})
0
function auth(userName, password) {
    $.ajax
    ({
        type: "POST",
        //SEND TO MY SERVER URL
        url: "http:myserverlocationurl.com",
        dataType: 'json',
        async: false,
        data: '{"userName": "' + userName + '", "password" : "' + password + '"}',
        success: function (response) {
          alert(JSON.stringify(response));
        }
    })
}

Вы можете просто предупредить данные для себя, чтобы это увидеть.

0

Функция успеха имеет три параметра: data, textStatus и jqXHR которые объясняются на сайте API jQuery:

успех

Тип: Функция (данные PlainObject, String textStatus, jqXHR jqXHR) Функция, вызываемая, если запрос завершается успешно. Функция получает три аргумента: данные, возвращаемые с сервера, отформатированные в соответствии с параметром dataType; строка, описывающая статус; и объект jqXHR (в jQuery 1.4.x, XMLHttpRequest). Начиная с jQuery 1.5, параметр успеха может принимать набор функций. Каждая функция будет вызываться по очереди. Это событие Ajax.

Чтобы просмотреть результаты вызова ajax, вы можете использовать console.log() для просмотра содержимого аргументов:

    success: function (data, textStatus, jqXHR) {
          console.log(data);
          console.log(textStatus);
          console.log(jqXHR);
    }

Чтобы добавить содержимое ответа JSON на ваш сайт, это зависит от того, как он отформатирован. Если ваш ответ возвращает что-то вроде: {"user": "jsmith", "authentication": "success"}, вы можете предупредить пользователя:

    success: function (data, textStatus, jqXHR) {
          alert('User: ' + data.user + ' authenticated:' + data.authentication);
    }

Или добавьте его к некоторому элементу DOM на вашей странице, то есть к div с идентификатором login-status:

    success: function (data, textStatus, jqXHR) {
          $('#login-status').html('User: ' + data.user + ' authenticated:' + data.authentication);
    }
  • 0
    Спасибо за ваш ответ. Поэтому, если я воспользуюсь функцией успеха, о которой вы упомянули выше, будут ли данные отображаться на веб-странице, чтобы пользователь мог их увидеть?
  • 0
    Я не думаю, что Консоль необходима, потому что я на 100% уверен, что сервер отправляет обратно данные JSON. Мне просто нужен способ отобразить ответ данных JSON на страницу входа в систему (через Popup / Alert).
Показать ещё 10 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню