В настоящее время у меня есть форма входа в систему, которая будет отправлять данные 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, которые отправляются с сервера и на мою веб-страницу (либо в виде всплывающего окна, но НИЧЕГО будет работать, пока я это вижу).
Спасибо, и любая помощь будет очень признательна.
$.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);
}
})
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));
}
})
}
Вы можете просто предупредить данные для себя, чтобы это увидеть.
Функция успеха имеет три параметра: 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);
}
JSON.stringify()
если вам нужно.