Отправка POST запроса при взаимодействии через REST. СПИК

Для отправки POST запроса необходимы следующие данные:

  • Адрес метода (подробности тут). Например, MethodName.
  • Упаковка данных (подробности тут). Например, SendedData.

Чтобы отправить запрос, необходимо создать Http Request и указать параметры.

Ниже показан Пример 2. JS:

//создаем объект, позволяющий делать HTTP-запросы 
var xmlhttp = new XMLHttpRequest();

//создаем соединение 
xmlhttp.open(method, url, false);

//задаем header 
xmlhttp.setRequestHeader("Accept", "json"); 
xmlhttp.setRequestHeader("Content-Type", "application/json");

//отправляем 
xmlhttp.send(sendData);

Обработать полученные данные можно так, как показано ниже.

Пример 3. JS:

//возвращаем статус и тело ответа 
var responseText = xmlhttp.responseText;

//создаем объект из полученного JSON 
var parsedJson = JSON.parse(responseText); 
return parsedJson;

Полный код метода отправки Post запроса с параметром на JavaScript выглядит следующим образом:

// url - ссылка на ресурс
// sendData - данные для отправки
// method - метод запроса (’GET’, ’POST’, ’PUT’...)
// Если method не был задан, то будет выполнен POST-запрос.
// Поле url - обязательное.
// Метод sendRequest возвращает результат запроса {status, response}.

var sendRequest = function(url, sendData, method) {
    if (!url)
        throw new Error(’Url required.’);

    //если метод не передан, то подразумевается POST
    method = method || "POST";

    //если sendData не строка, то делаем из нее или пустого объекта строку
    if (!(typeof sendData == ’string’ || sendData instanceof String)) {
        sendData = JSON.stringify(sendData || {});

    }

    //создаем соединение
    xmlhttp.open(method, url, false);

    //задаем header
    xmlhttp.setRequestHeader("Accept", "json");
    xmlhttp.setRequestHeader("Content-Type", "application/json");

    //отправляем
    xmlhttp.send(sendData);

    //возвращаем статус и тело ответа
    var responseText = xmlhttp.responseText;
    var parsedJson;
    if (responseText) {
        try {

            //создаем объект из полученного JSON
            parsedJson = JSON.parse(responseText);

        } catch(e) {
            alert("Incorrect JSON response from server");
        }
    }
    return {
        status: xmlhttp.status,
        response: parsedJson
    };
};