Не могу отослать JSON. XMLHttpRequest
Есть ссылка http://demo.test-edu.ru/get-link
На неё нужно отправить JSON со следующими параметрами:
id Целочисленный внутренний уникальный идентификатор студента
(человека) в рамках вузовской системы.
orphan Сирота - значение бит 0 - нет / 1 - да
gender Пол - значение male / female / null (необязательный
параметр)
birth_year Год рождения - (число 0000 - 9999 / null)
birth_month Месяц рождения - (число 01 - 12 / null)
birth_day День рождения - (число 01 - 31 / null)
secret Секретный ключ организации, полученный в admin.testedu.ru (Настройки организации).
vpo_group [Информация о группе]
spo_group [Информация о группе]
[Информация о группе]
id Целочисленный внутренний уникальный идентификатор группы
course_num Курс(номер) - значение от 1 до 6 для ВУЗа, от 1 до
4 для СПО
education_level Уровень образования. Для ВУЗа:
1 - бакалавриат
2 - специалитет
3 – магистратура
Для СПО:
9 – учащиеся пришли после 9 класса
11 – учащиеся пришли после
Собственно решил я прописать XML Request, так как иных методов не знаю, в целом насколько я понимаю я сделал все верно, собрал все данные с формы, представил их в виде JSON, а после отправляю их, единственное, что я не пытался - FormData, ведь не понимаю как сформировать там правильный JSON объект, есть catch на XML Status и XML ResponseText, но они ничего не выводят, как бы я ни старался. Прилагаю код ниже:
$( "#yes" ).click(function() {
$('#yes').prop('checked', true);
$('#no').prop('checked', false);
$.cookie('orphan', 1);
console.log($.cookie('orphan'))
});
$( "#no" ).click(function() {
$('#yes').prop('checked', false);
$('#no').prop('checked', true);
$.cookie('orphan', 0);
console.log($.cookie('orphan'))
});
$( "#male" ).click(function() {
$('#male').prop('checked', true);
$('#female').prop('checked', false);
$.cookie('sex', "male");
console.log($.cookie('sex'))
});
$( "#female" ).click(function() {
$('#male').prop('checked', false);
$('#female').prop('checked', true);
$.cookie('sex', "female");
console.log($.cookie('sex'))
});
// эта функция сработает при нажатии на кнопку
function sendJSON() {
alert("AAAAAAAAAAAAAAAAAAAA")
//Получаем все функци
let id = 1;
let name = $("#name").val();
let email = $("#email").val();;
let year = $('#year option:selected').text();
let month = $('#moth option:selected').text();
let day = $('#day option:selected').text();
let courseOld = $('#course option:selected').text();
let group = $('#group option:selected').text();
let edLvlOld = $('#select option:selected').text();
let sex = $.cookie('sex');
let orphanOld = $.cookie('orphan');
let secretKey = "5a0aaf46024e1d0e7b24bc0d26960c6d";
let courseCur = +courseOld;
let edLvlCur = +edLvlOld;
let orphanCur = +orphanOld;
/*
{
"id":1,
"gender":"male",
"birth_year":"2003",
"birth_month":"02",
"birth_day":"21",
"orphan":0,
"secret": "FSDAGFDSA-----------------GEDG",
"vpo_group":{
"id":1,
"course_num":1,
"title":"test-133",
"education_level":1
}
}
*/
let data = {
'id': 1,
'gender': sex,
'birth_year':year,
'birth_month':moth,
'birth_day':day,
'orphan':orphanCur,
'secret':secretKey,
'vpo_group': {
'id': 1,
'course_num':courseCur,
'title':group,
'education_level':edLvlCur
}
};
// создаём новый экземпляр запроса XHR
let xhr = new XMLHttpRequest();
// адрес, куда мы отправим нашу JSON-строку
let url = "http://demo.test-edu.ru/get-link";
// открываем соединение
xhr.open("POST", url, true);
// устанавливаем заголовок — выбираем тип контента, который отправится на сервер, в нашем случае мы явно пишем, что это JSON
xhr.setRequestHeader("Content-Type", "application/json");
// когда придёт ответ на наше обращение к серверу, мы его обработаем здесь
// преобразуем наши данные JSON в строку
// когда всё готово, отправляем JSON на сервер
try {
xhr.send(data);
if (xhr.status != 200) {
alert(`Ошибка ${xhr.status}: ${xhr.statusText}`);
} else {
alert(xhr.response);
}
} catch(err) { // для отлова ошибок используем конструкцию try...catch вместо onerror
alert("Запрос не удался");
}
}
P.S. sendJSON привязано через атрибут onclick