Не могу отослать 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


Ответы (0 шт):